According to the Mozilla Developer Website:
The flatMap() method first maps each element using a mapping function, then flattens the result into a new array. It is identical to a map followed by a flat of depth 1, but flatMap is often quite useful, as merging both into one method is slightly more efficient.
Example:
let arr = [1, 2, 4, 2, 3, 3, 4, 5, 5, 5, 8, 8, 9, 10];
const flatMap = arr.flatMap(x => x);
console.log(flatMap);
TypeError: arr.flatMap() is not a function
Why is this returning this error?
EDIT
I am running this through Atom text editor and have used HomeBrew to update it to the latest version using brew upgrade node
and it is still giving me the same error.
I have also tried npm install n -g
I was getting this when testing with jest, it's because flatmap
is only part of node 11 and I was using node 10.
As a workaround, I added require('core-js/stable');
in my setupTests.ts
.
I presume also there are some browsers that won't have this either. As such I will also put that require line in my application imports somewhere.
It seems that flatMap
is not supported on your browser. Here you are a complete list of supported browsers: https://caniuse.com/#search=flatMap
If you really want to use it, here you are a polyfill that will grant support down to ES3: https://www.npmjs.com/package/array.prototype.flatmap
By the way, it is useful when applied on a multidimensional array!
It means you're using a web browser or other development environment that does not support Array.prototype.flatMap
(currently Edge and IE have no support). CanIUse table here .
Also note that it is used primarily for multidimensional arrays (to avoid chaining map
and flat
, hence flatMap
).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.