提问者:小点点

JavaScript flatMap()错误:“flatMap映射器函数不可调用”


我正试图按下面的方式使数组扁平化,但是当我使用.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();

共2个答案

匿名用户

我应该使用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);