JavaScript如何提取对象数组指定字段合并为单个键值对对象
JavaScript数组转指定键值对象实现方案
你可以根据项目的JS兼容需求,选择以下任意一种实现方式:
方法1:Object.fromEntries 简洁写法(ES2019+ 支持)
这是写法最精简的现代方案,先通过map把原数组处理成键值对格式的二元数组,再直接传入API生成目标对象:
let myFinalData = Object.fromEntries( myCurrentData.map(item => [item._id, item.name]) );
方法2:reduce 遍历写法(ES5+ 全兼容)
如果需要兼容更低版本的JS环境,用数组的reduce方法是最通用的方案,初始值传入空对象,遍历过程中逐步挂载键值对:
let myFinalData = myCurrentData.reduce((res, item) => { res[item._id] = item.name; return res; }, {});
方法3:基础循环写法(逻辑最直观)
如果对数组高阶函数不熟悉,直接初始化空对象后遍历赋值即可,逻辑零门槛:
let myFinalData = {}; myCurrentData.forEach(item => { myFinalData[item._id] = item.name; });
以上三种写法运行后,得到的myFinalData结构和需求完全一致:
{ D01: "Lunetts", D02: "Glasses", D03: "Auros" }
内容的提问来源于stack exchange,提问作者mahin mridha
相关产品推荐
相关产品推荐

