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

javascript对象键和值如果值匹配则存储

javascript对象键和值如果值匹配则存储

撒科打诨 2021-10-29 17:01:07
我有一个对象,另一个是从查询中获取的对象 list1,但我想将 Obj 键值存储到数组中。var Obj = {   '1': 'Test 1',  '2': 'Test 2',  '3': 'Test 3',  '4': 'Test 4',  '5': 'Test 5'}我从查询中获取数据,该查询是对象查询中的 data2 键 1,2,3,4 和 5 中的索引值 = 'select data1, data2, data3 from test';list1 = [{      data1: 123,      data2: 4,      data3: 'value3',}]如果 data2 值,我想要一个对象输出。list1 = [{      data1: 123,      data2: 'TEST 4',      data3: 'value3',}];
查看完整描述

2 回答

?
ibeautiful

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

您可以通过使用map运算符转换对象数组并data2从Obj对象中查找属性来创建所需的结果


var Obj = {

  '1': 'Test 1',

  '2': 'Test 2',

  '3': 'Test 3',

  '4': 'Test 4',

  '5': 'Test 5'

}


list1 = [{

  data1: 123,

  data2: 4,

  data3: 'value3',

}]



var finalList = list1.map(obj => ({

  data1: obj.data1,

  data2: Obj[obj.data2],

  data3: obj.data3

}));


console.log(finalList)


查看完整回答
反对 回复 2021-10-29
?
临摹微笑

TA贡献1982条经验 获得超2个赞

下面正在做的是:遍历list1数组。由于它是一个对象数组,我们遍历对象并更新item[iter]if the Obj[item[iter]]is not undefined。


list1.forEach( item => {

  for (iter in item) {

    item[iter] = Obj[item[iter]] !== undefined ? Obj[item[iter]] : item[iter]

  }

})

结果是


[

  {

    "data1": 123,

    "data2": "Test 4",

    "data3": "value3"

  }

]

希望这可以帮助。


查看完整回答
反对 回复 2021-10-29
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

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