如何使用ES6添加属性并将数组转换为目标嵌套对象数组
ES6 数组转指定结构对象数组实现
核心用ES6的Array.map()方法做一对一映射转换,完全匹配你的转换需求:
- 遍历原数组每个元素,默认生成携带
text字段的对象,text值对应当前遍历的原始元素 - 当元素值严格等于
'Dog'时,给生成的对象追加extraClasses字段,值为["ti-extra"]
基础易读写法
逻辑直白,适合后续维护:
const sourceArr = ['cat', 'Dog', 'monkey']; const targetArr = sourceArr.map(item => { const itemObj = { text: item }; if (item === 'Dog') { itemObj.extraClasses = ["ti-extra"]; } return itemObj; });
简洁写法
用ES6展开运算符实现条件属性注入,代码更短:
const targetArr = sourceArr.map(item => ({ text: item, ...(item === 'Dog' ? { extraClasses: ["ti-extra"] } : {}) }));
执行后得到的targetArr和你要求的输出结构完全一致:
[ {"text":"cat"}, {"text":"Dog","extraClasses":["ti-extra"]}, {"text":"monkey"} ]
提示:如果后续需要不区分大小写匹配
Dog,把判断条件改成item.toLowerCase() === 'dog'即可。
内容的提问来源于stack exchange,提问作者Jacklyn N
相关产品推荐
相关产品推荐

