我有兩個陣列:
陣列 1:
['0000037_165', '0000037_62', '0000037_74', '0000037_165', ...]
陣列 2:
[
{SiteUniqueID: '0000037_165', Description: 'Description 1'},
{SiteUniqueID: '0000037_165', Description: 'Description 2'},
{SiteUniqueID: '0000037_62', Description: 'Description 1'},
{SiteUniqueID: '0000037_74', Description: 'Description 1'},
{SiteUniqueID: '0000037_165', Description: 'Description 1'},
...
]
我需要映射兩個陣列并檢查陣列 2 中的“SiteUniqueID”是否存在于陣列 1 中。如果它存在于陣列 1 中,我需要將 ID 和描述推送到一個新陣列中。
如陣列 2 所示,一個站點 ID 可能有多個描述。
所以,棘手的部分是,如果 ID 在陣列 2 中存在兩次,那么描述應該是所有描述的陣列。
到目前為止,我已經混合使用了 .map() 和 .find() ,但沒有運氣。
我希望得到的陣列看起來像這樣:
[
{SiteUniqueID: '0000037_165', Description: ['Description 1', 'Description2']},
{SiteUniqueID: '0000037_62', Description: ['Description 1']},
{SiteUniqueID: '0000037_74', Description: ['Description 1']},
{SiteUniqueID: '0000037_165', Description: ['Description 1']},
...
]
任何幫助表示贊賞!
uj5u.com熱心網友回復:
也應該作業:
var array1 = new Set(['0000037_165', '0000037_62', '0000037_74', '0000037_165'])
var array2 = [
{SiteUniqueID: '0000037_165', Description: 'Description 1'},
{SiteUniqueID: '0000037_165', Description: 'Description 2'},
{SiteUniqueID: '0000037_62', Description: 'Description 1'},
{SiteUniqueID: '0000037_74', Description: 'Description 1'},
{SiteUniqueID: '0000037_165', Description: 'Description 1'}]
var newArray = [];
array1.forEach(x => {
var results = array2.filter(y => y.SiteUniqueID === x);
if (results?.length)
newArray.push({SiteUniqueID: x, Description: results.map(z => z.Description)})
})
console.log(newArray);
uj5u.com熱心網友回復:
檢查此代碼。
let arr1 = ['0000037_165', '0000037_62', '0000037_74', '0000037_165'];
let arr2 = [{
SiteUniqueID: '0000037_165',
Description: 'Description 1'
},
{
SiteUniqueID: '0000037_165',
Description: 'Description 2'
},
{
SiteUniqueID: '0000037_62',
Description: 'Description 1'
},
{
SiteUniqueID: '0000037_74',
Description: 'Description 1'
},
{
SiteUniqueID: '0000037_165',
Description: 'Description 1'
},
]
let arrMod = [];
arr2.forEach(a => {
if (arr1.includes(a.SiteUniqueID)) {
let index = arrMod.findIndex(arrMod => arrMod.SiteUniqueID === a.SiteUniqueID);
if (index !== -1) {
arrMod[index].Description.push(a.Description);
} else {
arrMod.push({
SiteUniqueID: a.SiteUniqueID,
Description: [a.Description]
});
}
}
});
console.log(arrMod);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/525599.html
