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

How to push multiple zeros to an already existing array

本文关键字:存在 数组      更新时间:2023-09-26

我在此链接上找到了如何创建具有选定零数的数组。创建零填充 JavaScript 数组的最有效方法?

但我的问题是,假设我已经有一个数组

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]);
您可以使用

Array.prototype.concat()Array.prototype.fill()

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

var a = ['hihi', 'haha'].concat(Array(12).fill(0));
document.write('<pre>' + JSON.stringify(a, null, 3) + '</pre>');

例如,

您可以使用链接答案中的解决方案来创建十二个零的数组,然后使用 Array.prototype.concat 函数创建所需的数组。

var zeroes = Array.apply(null, Array(12)).map(Number.prototype.valueOf, 0);
var laughters = ['hihi', 'haha'];
var combined = laughters.concat(zeroes);
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;
}

它在每次迭代中将数组加倍,因此它可以创建一个非常大的数组,只需很少的迭代。

简而言之,使用您的数组并执行与您提到的答案的连接。

var a = ['hihi','haha'].concat(Array.apply(null, Array(12)).map(Number.prototype.valueOf,0);)

de 0 必须是 int 还是字符串?为什么要加 12 个零?到目前为止,您尝试了什么?

只是一个简单的例子,

var a = ['hi', 'ha'];
for(var i = 0; 14 > a.length; i++){
a.push(0);
}