我正试图按下面的方式使数组扁平化,但是当我使用.flatmap()
时,我得到了一个错误:
Uncaught TypeError: flatMap mapper function is not callable
at Array.flatMap (<anonymous>)
const data = [
{ key1: 5, key3: 2 },
{ key1: 2, key3: 1 },
{ key1: 3, key3: 2 },
{ key2: 8 },
{ key1: 5, key3: 2 },
];
var allKeys = data.map(r => Object.keys(r))
// [
// [ 'key1', 'key3' ],
// [ 'key1', 'key3' ],
// [ 'key1', 'key3' ],
// [ 'key2' ],
// [ 'key1', 'key3' ]
// ]
allKeys.flatMap();
我应该使用allkeys.flat();
您可以使用flatmap
而不是map
来更加简洁,这样就不需要在后面调用.flat()
,因为它只是.map(。。。).flat()
的简写。 此外,您还可以直接传递object.keys
作为flatmap
的回调,因为它忽略除了给出的第一个参数以外的所有参数。
null
const data = [
{ key1: 5, key3: 2 },
{ key1: 2, key3: 1 },
{ key1: 3, key3: 2 },
{ key2: 8 },
{ key1: 5, key3: 2 },
];
var allKeys = data.flatMap(Object.keys)
console.log(allKeys);