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

我有一个对象,另一个是从查询中获取的对象 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',

}];


撒科打诨
浏览 157回答 2
2回答

ibeautiful

您可以通过使用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)

临摹微笑

下面正在做的是:遍历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"  }]希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript