如何从JavaScript对象数组中提取键数组与值数组?
提取对象数组的键数组和值数组
针对你给出的对象数组:
const obj = [{ '1': 'a'},{ '2': 'b'}, {'3': 'c'}]
可以用以下几种方式提取目标数组:
方法一:分开遍历提取
提取键数组
利用map遍历数组,结合Object.keys获取每个对象的键(因为每个对象只有一个键,直接取索引0的元素):
const keys = obj.map(item => Object.keys(item)[0]); // 结果:['1','2','3']
提取值数组
同理,用Object.values获取每个对象的值:
const values = obj.map(item => Object.values(item)[0]); // 结果:['a','b','c']
方法二:单次遍历同时获取两个数组
如果数组规模较大,想减少遍历次数,可以用reduce一次完成键和值的收集:
const [keys, values] = obj.reduce(([accKeys, accValues], item) => { // 取出当前对象的唯一键值对 const [key, value] = Object.entries(item)[0]; // 累加进结果数组 return [[...accKeys, key], [...accValues, value]]; }, [[], []]); // keys: ['1','2','3'], values: ['a','b','c']
这两种方法都能精准得到你想要的结果,根据实际场景选择即可。
内容的提问来源于stack exchange,提问作者user20547606
相关产品推荐
相关产品推荐

