无法通过节点在控制台中运行简单代码

时间:2019-03-30 23:14:39

标签: javascript node.js

我用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。

2 个答案:

答案 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), []);
}