如何在JavaScript中从对象内嵌的对象数组提取指定属性值组成数组
问题原因
你使用的Object.values()只能获取单个对象的所有属性值,且你仅处理了days数组的第一个元素,自然无法得到全量的日期属性值。另外你给出的示例数据中,第二天的日期属性键名为dia而非day,需要兼容键名不一致的情况。
正确实现方案
使用数组的map方法遍历整个days数组,逐行提取目标属性即可:
// 兼容day和dia两种键名的写法 let days = partys.days.map(item => item.day || item.dia);
执行后得到的days值即为["Monday", "Friday"],完全符合需求。
如果可以确认所有日期对象的属性键均为day,可以直接简化为:
let days = partys.days.map(item => item.day);
额外健壮性优化
如果存在部分对象无对应日期属性的场景,可以加兜底逻辑避免返回undefined:
let days = partys.days.map(item => item.day ?? item.dia ?? '未设置日期');
内容的提问来源于stack exchange,提问作者Luiz Carlos
相关产品推荐
相关产品推荐

