如何将对象数组中的动态国家key提取为新数组
解法思路
先预设所有对象共有的固定属性集合,遍历数组中每一项时,取出当前对象的所有键名,过滤掉固定属性后剩下的就是国家名称键,汇总后即可得到目标数组。该实现兼容单个对象内存在多个国家动态键的场景。
实现代码
const arr1 = [ { id: 1, label: 'CA', value: 9, Canada: 9, }, { id: 2, label: 'US', value: 7, 'United States': 7, }, { id: 3, label: 'AU', value: 5, Australia: 5, }, ]; // 固定公共键集合,用于过滤非国家键 const fixedKeys = new Set(['id', 'label', 'value']); const result = arr1.flatMap(item => Object.keys(item).filter(key => !fixedKeys.has(key))); console.log(result); // 输出:['Canada', 'United States', 'Australia']
简化写法(单对象仅1个国家键场景)
如果确认每个对象内只会存在一个国家名称的动态键,可以简化为:
const fixedKeys = new Set(['id', 'label', 'value']); const result = arr1.map(item => Object.keys(item).find(key => !fixedKeys.has(key)));
内容的提问来源于stack exchange,提问作者IncognitoUser
相关产品推荐
相关产品推荐

