我有兩個物件如下:
var1 = {
"ELEMENT1": [1110,1111],
"ELEMENT2": ["909"],
"ELEMENT3": ["910"]
}
var2 = {
"ELEMENT3": [
{
"ID":910,
"NAME":"ELEMENT3",
"DETAILS":"CURRENT"
},
{
"ID":912,
"NAME":"ELEMENT3",
"DETAILS":"FUTURE"
}
],
"ELEMENT2":[
{
"ID":909,
"NAME": "ELEMENT2",
"DETAILS":"OUTAGE"
},
{
"ID": 910,
"NAME": "ELEMENT2",
"DETAILS":"OUTAGE"
}
],
"ELEMENT1":[
{
"ID": 1110,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1111,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1112,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1113,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
}]
}
我試圖在比較var1和之后創建第三個物件var2。第三個物件應該只包含那些ID存在于var1.
第三個物件應如下所示:
{
"ELEMENT3": [
{
"ID":910,
"NAME":"ELEMENT3",
"DETAILS":"CURRENT"
}
],
"ELEMENT2":[
{
"ID":909,
"NAME": "ELEMENT2",
"DETAILS":"OUTAGE"
}
],
"ELEMENT1":[
{
"ID": 1110,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1111,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
}
]
}
uj5u.com熱心網友回復:
這應該這樣做:
var var1 = {
"ELEMENT1": ["1110","1111"],
"ELEMENT2": ["909"],
"ELEMENT3": ["910"]
}
var var2 = {
"ELEMENT3": [
{
"ID":910,
"NAME":"ELEMENT3",
"DETAILS":"CURRENT"
},
{
"ID":912,
"NAME":"ELEMENT3",
"DETAILS":"FUTURE"
}
],
"ELEMENT2":[
{
"ID":909,
"NAME": "ELEMENT2",
"DETAILS":"OUTAGE"
},
{
"ID": 910,
"NAME": "ELEMENT2",
"DETAILS":"OUTAGE"
}
],
"ELEMENT1":[
{
"ID": 1110,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1111,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1112,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
},
{
"ID": 1113,
"NAME": "WORK_PACKAGE",
"DETAILS": "INLINE"
}]
}
var obj = {};
Object.keys(var2).forEach((item) => {
var2[item].forEach((subItem) => {
if(var1[item].indexOf(`${subItem.ID}`) > -1) {
obj[item] = [...(obj[item] ?? []), subItem]
}
})
});
console.log(obj);
uj5u.com熱心網友回復:
您可以回圈var2并過濾包含過濾后的道具并將其分配給新物件的IDs :var1
let var1 = {
ELEMENT1: [1110, 1111],
ELEMENT2: [909],
ELEMENT3: [910],
}
let var2 = {
ELEMENT3: [
{ ID: 910, NAME: 'ELEMENT3', DETAILS: 'CURRENT' },
{ ID: 912, NAME: 'ELEMENT3', DETAILS: 'FUTURE' },
],
ELEMENT2: [
{ ID: 909, NAME: 'ELEMENT2', DETAILS: 'OUTAGE' },
{ ID: 910, NAME: 'ELEMENT2', DETAILS: 'OUTAGE' },
],
ELEMENT1: [
{ ID: 1110, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
{ ID: 1111, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
{ ID: 1112, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
{ ID: 1113, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
],
}
const result = {}
for (let key in var2) {
result[key] = var2[key].filter(o => var1[key]?.includes(o.ID))
}
console.log(JSON.stringify(result, null, 2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369258.html
