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)
添加回答
举报