如何将包含数组的对象转换为仅含目标值的普通数组?
问题解决说明
现有代码的问题
你当前写的代码只完成了第一层数据提取:
- 执行
Object.keys(obj).map后得到的是obj中jaar键对应的数组整体[{YEAR(Scan): '2020'}, {YEAR(Scan): '2021'}] - 没有对数组内部的每个对象做属性提取,因此无法得到纯年份组成的目标数组。
修复方案
你只需要先取出jaar数组,再遍历数组提取每个对象的YEAR(Scan)属性即可,注意因为属性名包含特殊字符,需要用方括号语法访问属性:
// 简洁写法(支持ES6+环境) const result = obj.jaar.map(item => item['YEAR(Scan)']) console.log(result) // 输出 ["2020", "2021"]
如果需要兼容低版本不支持ES6语法的环境,可以用普通函数写法:
// ES5兼容写法 var result = obj.jaar.map(function(item) { return item['YEAR(Scan)'] }) console.log(result)
内容的提问来源于stack exchange,提问作者Swauters
相关产品推荐
相关产品推荐

