我在此链接中找到了如何使用选定数量的零创建数组。 Most efficient way to create a zero filled JavaScript array?
但我的问题是,想象一下我已经有了一个数组
var a = ['hihi','haha']
如何在我的两个第一个元素之后添加12个零?所以它变成了:
a = ['hihi','haha',0,0,0,0,0,0,0,0,0,0,0,0];
当然我可以去找一个
for(var i = 0; i < 12, i++){
a.push(0);
}
但是有单行方法吗?
之类的东西a.push(6*[0]);
答案 0 :(得分:1)
您可以使用 Array.prototype.concat()
和 Array.prototype.fill()
Array.prototype.fill()
12
的数组并填充0
Array.prototype.concat()
var a = ['hihi', 'haha'].concat(Array(12).fill(0));
document.write('<pre>' + JSON.stringify(a, null, 3) + '</pre>');
&#13;
答案 1 :(得分:1)
例如,您可以使用链接答案中的解决方案创建一个包含12个零的数组,然后使用Array.prototype.concat函数创建所需的数组。
var zeroes = Array.apply(null, Array(12)).map(Number.prototype.valueOf, 0);
var laughters = ['hihi', 'haha'];
var combined = laughters.concat(zeroes);
答案 2 :(得分:1)
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;
}
它在每次迭代中将数组加倍,因此它可以创建一个非常大的数组,只需很少的迭代。
答案 3 :(得分:0)
简而言之,拿走你的阵列并使用你提到的concat执行the answer。
var a = ['hihi','haha'].concat(Array.apply(null, Array(12)).map(Number.prototype.valueOf,0);)
答案 4 :(得分:0)
必须de 0是int还是字符串? 为什么要添加12个零? 到目前为止你尝试了什么?
只是一个简单的样本,
var a = ['hi', 'ha'];
for(var i = 0; 14 > a.length; i++){
a.push(0);
}