在nodejs中未定义array.prototype.flat

zzr*_*zrv 11 javascript arrays node.js

给出以下js命令:

[].flat;
Run Code Online (Sandbox Code Playgroud)

在浏览器(chrome / firefox)中执行:返回 function

使用nodejs v10.13.0执行它:返回 undefined

现在,我想知道节点RTE中还没有其他什么方法,像全局对象这样的文档在哪里Array

似乎与相同Array.prototype.flatMap

luc*_*aro 18

您可以在MDN中找到的文档Array。MDN是学习Javascript和参考的绝佳资源。您可以在此处找到有关用法,浏览器兼容性甚至Polyfill的信息。

在其中,您可以看到Flat是实验性的,某些浏览器不支持

在此处输入图片说明

至于对ES6 +的Node.js支持,最好的资源是node.green,其中按节点版本列出了非常详细且最新的受支持功能。

在此处输入图片说明


小智 11

目前 node.js 似乎不支持它。一种快速展平(深度 1)数组的 ES6 方法:

[[1, 2], [3, 4]].reduce((acc, val) => [ ...acc, ...val ], [])
Run Code Online (Sandbox Code Playgroud)

  • 对于包含非数组元素的数组,这将引发错误。示例:“[2, 3, [1, 2]]”、“[2, 3]”。除此之外,如果元素是“字符串”,它也会产生不理想的结果。在 ES6 中使用它来将数组展平至 1 级: `[[1, 2], [3, 4], 2].reduce((flattened, element) => flattened.concat(element), []); ` (2认同)