如何将数组元素逐个转换为含指定ID的独立对象?
解决数组转独立对象数组的问题
原代码问题分析
你用Object.assign({}, cars)把数组转成了以索引为键的对象(比如{0: "Saab", 1: "Volvo", 2: "BMW"}),再把这个对象放到anv里,自然得不到每个元素对应独立对象的结果。Object.assign的作用是合并对象或可枚举属性,不适合做数组元素转独立对象的操作。
正确实现方法
要得到每个数组元素对应独立对象的数组,直接用数组的map方法遍历处理即可:
var cars = ["Saab", "Volvo", "BMW"]; // 用map遍历数组,每个元素生成一个新对象 var result = cars.map(car => ({ id: "1.R", new1: car })); console.log(result);
这段代码执行后,result就是你需要的数组:
[ {id:"1.R", new1:"Saab"}, {id:"1.R", new1:"Volvo"}, {id:"1.R", new1:"BMW"} ]
map方法会遍历数组的每一项,对每个元素执行你定义的回调函数,把返回的新对象收集成一个新数组,正好符合你的需求。
内容的提问来源于stack exchange,提问作者Anvita Rastogi
相关产品推荐
相关产品推荐

