如何使用map/forEach从对象数组的键值对生成指定结构新数组
实现方案
方法1:使用map方法(更推荐)
map方法会直接返回新数组,不需要额外声明变量存储结果,代码更简洁:
const originalArr = [ { "name": "Dentist Specialist", "category": "Roles", "path": "cde" }, { "name": "Root Canal Therapy", "category": "Procedures", "path": "abc" }, { "name": "Live Course", "category": "Course Type", "path": "mfg" } ]; const newArr = originalArr.map(item => { return { [item.category]: item.name }; });
这里用了计算属性名的语法,直接把category的属性值作为新对象的键,对应值取name属性即可,自动忽略其他属性。
方法2:使用forEach方法
如果需要用forEach实现,需要先声明空数组存储生成的新对象:
const originalArr = [/* 原始数组内容同上 */]; const newArr = []; originalArr.forEach(item => { newArr.push({ [item.category]: item.name }); });
两种方法运行后得到的newArr就是目标结构。
内容的提问来源于stack exchange,提问作者Smartest dumb
相关产品推荐
相关产品推荐

