如何提取JSON中所有键名为name的属性值并生成数组?
解决方案
你可以通过以下几种方式实现需求:
方法1:使用Object.values() + map(推荐,兼容性好)
通过Object.values()获取profile节点下所有属性的值(即各个动态ID对应的用户对象),再通过map遍历提取所有name属性值即可,代码如下:
// 假设你的完整JSON数据存在data变量中 const profile = data.profile; const nameList = Object.values(profile).map(item => item.name);
针对你给出的示例结构,最终nameList的结果为["siddharth", "ram", "maix"]。
方法2:使用Object.keys()遍历
如果需要兼容更早期的JS运行环境,也可以先获取所有动态键名后遍历取值:
const profile = data.profile; const nameList = []; for (const key of Object.keys(profile)) { nameList.push(profile[key].name); }
异常兼容处理
如果部分动态键对应的对象可能不存在name属性,可以加过滤逻辑避免得到undefined值:
const nameList = Object.values(profile) .filter(item => item && typeof item.name !== 'undefined') .map(item => item.name);
内容的提问来源于stack exchange,提问作者Siddharth
相关产品推荐
相关产品推荐

