您可以这样做:
function fillArray(value, len) { if (len == 0) return []; var a = [value]; while (a.length * 2 <= len) a = a.concat(a); if (a.length < len) a = a.concat(a.slice(0, len - a.length)); return a;}它在每次迭代中将数组加倍,因此可以创建很少迭代的真正大数组。
注意:您还可以通过使用
push代替来改善您的功能
concat,因为
concat每次迭代都会创建一个新的数组。像这样(作为一个如何使用数组的示例显示):
function fillArray(value, len) { var arr = []; for (var i = 0; i < len; i++) { arr.push(value); } return arr;}


