2 回答
TA貢獻1898條經驗 獲得超8個贊
假設nodes是一個Object而不是數組,并且X_Group是一個數組,您可以:
重建你的
nodes陣列,使用Object.assign()傳遞給
Object.assign()(作為其第二個參數)鍵值對的展開數組 (Array.prototype.map()) ,附加屬性,根據是否在其中找到 (with )具有/值nodesgroup'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)
添加回答
舉報
