JavaScript中如何提取对象数组_id生成指定数组(兼容Ionic/Angular/NodeJS/MongoDB场景)
问题原因
你的现有代码存在两处错误:
for...in遍历数组时拿到的key是数组索引的字符串类型,不是数组内的对象元素,因此key._id会返回undefined- 循环内直接写
return会在第一次遍历就终止执行,无法收集所有元素的_id字段
全场景兼容实现方案
以下方案完全适配Ionic、Angular、NodeJS、MongoDB相关开发环境:
推荐方案(最简洁)
使用ES6+标准的数组map方法直接映射提取字段:
let passions = [ {_id: "60a1557f0b4f226732c4597c",name: "Netflix"}, {_id: "60a1557f0b4f226732c4597b",name: "Movies"} ] const idList = passions.map(item => item._id)
执行后idList就是你需要的['60a1557f0b4f226732c4597c', '60a1557f0b4f226732c4597b']结果。
循环实现方案(兼容低版本运行环境)
如果需要兼容更低版本的JS运行环境,可以用普通for循环或者for...of循环实现:
// 普通for循环实现 const idList = [] for (let i = 0; i < passions.length; i++) { idList.push(passions[i]._id) } // for...of循环实现 const idList = [] for (const item of passions) { idList.push(item._id) }
内容的提问来源于stack exchange,提问作者Lexacle Technologies
相关产品推荐
相关产品推荐

