根据对象的key,将一个对象的键值映射到另一个对象数组中的对应属性上

问题描述

var obj ={
  apple: 1,
  banana:2,
  li:30
};
var arr = [
  {id:'1',text:'苹果',key:'apple', value:''},
  {id:'2',text:'梨', key:'li',value:''},
  {id:'3',text:'香蕉', key:'banana', value:''}
];

// 结果:生成一个新的数组
var newArr = [
  {id:'1',text:'苹果',key:'apple', value:'1'},
  {id:'2',text:'梨', key:'li',value:'2'},
  {id:'3',text:'香蕉', key:'banana', value:'30'}
];

如何实现?

阅读 4.7k
3 个回答

梨不是 30 么。。。

var obj ={
  apple: 1,
  banana:2,
  li:30
}
var arr = [
  {id:'1',text:'苹果',key:'apple', value:''},
  {id:'2',text:'梨', key:'li',value:''},
  {id:'3',text:'香蕉', key:'banana', value:''}
]

const newArr = arr.map(o => {
  o.value = obj[o.key]
  return o
})

console.log(newArr)

clipboard.png

如果有帮到你,麻烦 upvote 或采纳

var newArr = arr.map(item=>{
    let newObj = JSON.parse(JSON.stringify(item))
    let value = obj[ newObj[key] ]
    newObj.value = value ? value : ''
    return newObj
})

var data = arr.map(function (item) {

item.value = obj[item.key];
return item

});

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题