如何获取数组所有子项数组?特定名称子项数组提取方法
JavaScript 数组子项提取解决方案
1. 提取特定属性的子项数组(单行实现)
假设你的源数据是包含多个对象的数组,结构类似:
const sourceArray = [ { char: "a", number: 5 }, { char: "x", number: 9 }, { char: "u", number: 2 }, { char: "q", number: 4 } ];
要提取所有char属性的值组成数组,直接用map方法一行搞定:
const charArray = sourceArray.map(item => item.char); // 返回: ["a", "x", "u", "q"]
提取number属性的数组同理:
const numberArray = sourceArray.map(item => item.number); // 返回: [5, 9, 2, 4]
如果需要兼容部分对象缺失目标属性的情况(避免混入undefined),可以加个过滤逻辑:
const safeCharArray = sourceArray.map(item => item.char ?? null).filter(val => val !== null);
2. 获取所有子项的扁平化数组
如果是要把数组中所有对象的所有值都提取出来组成一个一维数组,用flatMap搭配Object.values实现单行解决方案:
const allItemsArray = sourceArray.flatMap(item => Object.values(item)); // 返回: ["a", 5, "x", 9, "u", 2, "q", 4]
内容的提问来源于stack exchange,提问作者Sacha
相关产品推荐
相关产品推荐

