JavaScript:批量读取数组内对象的所有code值问题求助
提取数组对象中的所有code值
嗨,我来帮你搞定这个问题~你遇到的核心问题是把数组当成普通对象来处理了:res.details是一个数组,不是键值对形式的对象,所以用Object.keys()遍历它只会拿到数组的索引(0、1、2),这显然不是你想要的结果。
下面给你两种简洁的实现方式:
方法一:用Array.map()(最推荐)
map()方法会遍历数组的每个元素,返回一个新数组,正好适合你提取所有code值的需求:
let res = { details: [ { "code":"123", "name":"tye" }, { "code":"456", "name":"San Joaquin" }, { "code":"789", "name":"Stanislaus" } ] }; // 提取所有code到新数组 const codes = res.details.map(item => item.code); console.log(codes); // 输出: ["123", "456", "789"]
方法二:用Array.forEach()(适合需要额外逻辑的场景)
如果你除了提取code还要做其他操作,可以用forEach(),但要注意直接遍历数组元素:
let res = { details: [ { "code":"123", "name":"tye" }, { "code":"456", "name":"San Joaquin" }, { "code":"789", "name":"Stanislaus" } ] }; let det = []; // 直接遍历数组的每个元素,而非用Object.keys处理数组 res.details.forEach(item => { det.push(item.code); }); console.log(det); // 输出: ["123", "456", "789"]
简单总结:数组自带的遍历方法(map、forEach)才是处理数组元素的正确方式,Object.keys()更适合处理普通的键值对对象哦~
内容的提问来源于stack exchange,提问作者Matarishvan
相关产品推荐
相关产品推荐

