我想知道哪种更好的方法将数组中对象的所有键和值提取为单独的数组。我的方法要求我通过在数组上进行映射来提取对象的键和值之后,将数组弄平。
输入值
const input = [{“ a”:1,“ b”:2},{“ c”:3},{“ d”:4},{},{“ e”:null,“ f”:6, “ g”:7}];
输出量
const键= [“ a”,“ b”,“ c”,“ d”,“ e”,“ f”,“ g”];
const值= [1、2、3、4,null,6、7];
我的解决方案
const input = [{
"a": 1,
"b": 2
}, {
"c": 3
}, {
"d": 4
}, {}, {
"e": null,
"f": 6,
"g": 7
}];
const keys = input.map(obj => [].concat(Object.keys(obj))).flat();
console.log(keys);
const values = input.map(obj => [].concat(Object.values(obj))).flat();
console.log(values);
您可以使用已实现的flatMap
flatMap()方法首先使用映射函数映射每个元素,然后将结果展平为新数组。它与map()后跟深度为1的flat()相同,但是flatMap()通常非常有用,因为将两者合并为一种方法效率更高。
const input = [{
"a": 1,
"b": 2
}, {
"c": 3
}, {
"d": 4
}, {}, {
"e": null,
"f": 6,
"g": 7
}];
const keys = input.flatMap(Object.keys);
const values = input.flatMap(Object.values);
console.log(keys,values)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句