Array.flat() 与展开运算符将多个数组展平为一个的性能

Mao*_*gai 1 javascript arrays performance node.js

将多个数组扁平化为一个数组的更好、更有效的方法是什么?

\n

传播运算符:

\n
let arr = [];\nfor (const array of arrays) {\n  arr.push(\xe2\x80\xa6array);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

或者与.flat()

\n
let arr = [];\nfor (const array of arrays) {\n  arr.push(array);\n}\narr = arr.flat();\n
Run Code Online (Sandbox Code Playgroud)\n

我使用循环不仅仅是const arr = arrays.flat()因为我想测试一些非常具体的东西。

\n

AKX*_*AKX 7

如果你需要单层展平,根据我做的这个JSBench

let arr = [].concat(...arrays);
Run Code Online (Sandbox Code Playgroud)

是迄今为止最快的(在我的 Windows Chrome 93 上,根据 Safari 上的评论并非如此),比您的实施速度快 3 倍以上。

  • 如果您运行服务器端,则可能使用 Node.js,它使用 V8 运行时,Chrome 也使用 V8 运行时。上面的可能是最快的。 (2认同)