如何从JavaScript数组对象中提取id值并生成数值数组?
从数组对象提取id数值数组的正确方法
首先修正你原数组的语法错误(gender字段缺少冒号,否则代码会报错):
let profil = [ { id: '1', name:'John', gender:'new-22', age:23}, { id: '2', name:'Doe', gender:'new-33', age:23} ];
你用filter得不到预期结果的原因很直接:filter的作用是筛选出符合条件的原数组元素,它只会保留原对象结构,不会对元素做转换,所以返回的还是包含原对象的数组。
要提取id并转为数值数组,你需要用map方法——它专门用来遍历数组并将每个元素转换为你需要的格式:
const result = profil.map(item => Number(item.id)); // 也可以用 + 运算符快速转数字:const result = profil.map(item => +item.id);
执行这段代码后,result的值就是你想要的[1, 2]。
如果需要处理数组中可能存在的无效id(比如id为空或非数字字符串),可以先过滤再转换:
const result = profil .filter(item => item.id && !isNaN(Number(item.id))) .map(item => Number(item.id));
内容的提问来源于stack exchange,提问作者Riski Pes1
相关产品推荐
相关产品推荐

