如何将多个零推送到已存在的数组

时间:2016-04-26 07:23:42

标签: javascript jquery arrays

我在此链接中找到了如何使用选定数量的零创建数组。 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]);

5 个答案:

答案 0 :(得分:1)

您可以使用 Array.prototype.concat() Array.prototype.fill()

  1. 使用 Array.prototype.fill()
  2. 创建大小为12的数组并填充0
  3. 然后使用 Array.prototype.concat()
  4. 与现有数组连接

    &#13;
    &#13;
    var a = ['hihi', 'haha'].concat(Array(12).fill(0));
    
    
    document.write('<pre>' + JSON.stringify(a, null, 3) + '</pre>');
    &#13;
    &#13;
    &#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);
}