如何从JavaScript对象数组中提取多个指定属性生成新数组
实现方案
针对大体量数组的处理推荐使用原生Array.map方法,性能最优且不会有额外依赖,两种常用写法如下:
写法1:ES6+ 解构赋值(最简洁)
// 生成新数组,不污染原数组 const result = arr.map(({ name, surname }) => ({ name, surname })); // 如果需要直接覆盖原变量的话可以这么写 arr = arr.map(({ name, surname }) => ({ name, surname }));
写法2:兼容低版本环境的传统写法
如果运行环境不支持ES6解构语法,可以用显式取值的方式:
const result = arr.map(function(item) { return { name: item.name, surname: item.surname }; });
注意:不推荐直接遍历删除原数组对象的
age属性,一方面会修改原数据带来副作用,另一方面删除对象属性的操作性能远低于生成新对象,对大体量数组来说效率差距会更明显。
内容的提问来源于stack exchange,提问作者mouchin777
相关产品推荐
相关产品推荐

