JavaScript:根据输入有效地创建空的2D数组

时间:2017-09-14 12:30:12

标签: javascript arrays

我试图创建一个空数组数组,其数量取决于N.目前,我有这个:

var seqList = [];
for(var i = 0; i < N; i++) {
    seqList.push([]);
}

这是最有效的方式吗?或者可能有另一种方式?

2 个答案:

答案 0 :(得分:2)

您的方法是最有效的方法。您也可以使用Array.fill中的ES6方法,但效率最高。

let n=10;
let array=Array.from({ length: n }, () => []);
console.log(array);

当你使用let array=[]时,你告诉解释器创建一个新的运行时数组。

如果你使用:var a = new Array(),你告诉解释你要调用构造函数Array,生成一个对象并创建你的数组。

答案 1 :(得分:0)

Array#fill是最干净的

let count = 10;
let seqList = Array(count).fill([]);

<强>更新

在受到@deceze的教育后,我宁愿使用,因为上面的例子失败是一种非常微妙的方式。

let count = 10;
let seqList = Array(count).fill(0).map(_ => []);

这比你的尝试好吗?可能不是。我已经习惯了阅读map / reduce,我更喜欢它。 YMMV