2 回答

TA貢獻1898條經驗 獲得超8個贊
假設nodes
是一個Object
而不是數組,并且X_Group
是一個數組,您可以:
重建你的
nodes
陣列,使用Object.assign()
傳遞給
Object.assign()
(作為其第二個參數)鍵值對的展開數組 (Array.prototype.map()
) ,附加屬性,根據是否在其中找到 (with )具有/值nodes
group
'X'
'Y'
Array.prototype.includes()
X_Group
const nodes = {A:{'name':'A'},B:{'name':'B'},C:{'name':'C'},D:{'name':'D'},E:{'name':'E'}},
X_Group = ['A', 'B'],
result = Object.assign(
{},
...Object
.keys(nodes)
.map(key =>
({[key]: {
...nodes[key],
group: X_Group.includes(nodes[key].name) ? 'X' : 'Y'
}})))
console.log(result)
.as-console-wrapper{min-height:100%;}

TA貢獻1802條經驗 獲得超5個贊
您不能使用“in”來檢查某個值是否在數組中。請改用 indexOf,它將返回元素的索引或 -1。
使用這個條件:
if(X_Group.indexOf(nodes[key].name)!==-1)
添加回答
舉報