为了账号安全,请及时绑定邮箱和手机立即绑定

根据条件javascript将键值对附加到字典数组

根据条件javascript将键值对附加到字典数组

偶然的你 2022-12-09 15:08:33
我有一系列字典var nodes ={A: {'name' : 'A'},B:{'name' : 'B'},C:{'name' : 'C'},D:{'name' : 'D'}E:{'name' : 'E'}}和另一个数组var X_Group = ['A', 'B'];我需要遍历每个字典元素,如果它存在于数组 X_Group 中,则将值 X 附加到它们,否则附加 Y。IE。var nodes ={A: {'name' : 'A' , group :'X'},B:{'name' : 'B', group :'X'},C:{'name' : 'C', group :'Y'},D:{'name' : 'D', group :'Y'},E:{'name' : 'E', group :'Y'}}我努力了:  for (var key in nodes){    if (key in X_Group)      nodes[key].group = 'X';else       nodes[key].group = 'Y';  }But it does not work. Any suggestions  on how to fix the issue?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

假设nodes一个Object而不是数组,并且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%;}


查看完整回答
反对 回复 2022-12-09
?
12345678_0001

TA贡献1802条经验 获得超5个赞

您不能使用“in”来检查某个值是否在数组中。请改用 indexOf,它将返回元素的索引或 -1。

使用这个条件:

  if(X_Group.indexOf(nodes[key].name)!==-1)


查看完整回答
反对 回复 2022-12-09
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信