我用JS写了简单的代码
const a = [1, 2, [3, 4, [5, 6]]];
console.log(a.flat());
我有这样的错误
console.log(a.flat());
^
TypeError: a.flat is not a function
我正在通过节点运行代码
node test.js
我需要安装一些软件包吗?我正在使用macOS。
答案 0 :(得分:1)
nodejs(v10)中似乎没有Array.flat
之类的东西。
仅适用于v11 +,请参见-兼容性表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
答案 1 :(得分:0)
您很可能拥有过时的Node.JS版本-如here所示,您需要Node.JS 11或更高版本。
从the website下载最新版本的Node.JS。
如果您无法使用/获取最新版本,则可以使用MDN polyfill,它适用于多层嵌套:
function flattenDeep(arr1) {
return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
}