JavaScript:如何用简便函数替代for循环提取数组对象名称组成新数组?
提取对象数组中的name字段组成新数组
首先先修正你示例代码里的语法问题:JavaScript中数组用[]包裹,对象的属性值如果是字符串需要加引号,正确的原数组写法如下:
const array = [ {name: 'alice', age: 18, hobby: 'dance'}, {name: 'bob', age: 27, hobby: 'cars'}, {name: 'chloe', age: 45, hobby: 'painting'} ];
你想要提取所有对象的name字段组成新数组,完全不用写for循环,用Array.prototype.map()方法就能一行搞定,这是最简便的实现方式:
const newArray = array.map(item => item.name); console.log(newArray); // 输出: ['alice', 'bob', 'chloe']
简单说明
map()方法会遍历数组的每一个元素,对每个元素执行你传入的回调函数(这里就是提取每个item的name),最后把所有回调的返回值组成一个新数组返回,代码简洁且可读性强。
如果你的数组里有可能存在null或者undefined这类无效元素,可以结合filter()先过滤再提取:
const newArray = array.filter(item => item != null).map(item => item.name);
内容的提问来源于stack exchange,提问作者Anik
相关产品推荐
相关产品推荐

