繁体   English   中英

在javascript中在数组中添加元素

[英]adding elements in array in javascript

我有一个由5个元素组成的数组。 arr = [1,2,3,4,5] ; 我想在这些元素之间添加元素,并将它们放置在新数组中arr1 = [1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0]; 当我警告arr1我得到的数组是一样的数组,但是当我警告arr1.length时,它的长度是5,而实际上是20。您能帮我解决这个问题,还是告诉我为什么我得到它结果。 这是我使用的代码示例:

function niza(val,times){
  var arr = [];
  for (var i=0;i<times;i++) {
    arr.push(val);
  }
  return arr;
}

然后这个:

var y1=0;
var arr= [];
var a = new Array();
for (var j=0;j<Niza1.length;j++) {
  y1 = Niza1[j];
  arr = y1 + "," + niza(0,11);
  a.push(arr);
}

其中Niza1包含arr前面提到的5个元素,a包含arr1提到的元素。

我不确定您是否编写了代码,但是您知道可以使用arr.push一次添加多个元素吗?

var array1 = [1, 2, 3, 4, 5];

var array2 = [];
for(var i = 0 ; i < array1.length ; i++) {
    array2.push(array1[i], 0, 0, 0);
}

//array2 == [1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0]

您的问题有点难以理解,但是可以尝试如下操作:

function inject(original, val, times) {
    var res = [];
    for(var i=0; i < original.length; i++){
        res.push(original[i]);

        for(var j = 0; j < times; j++){
            res.push(val);
        }
    }
    return res;
}

示范

这是一个可以与任意列表和长度一起使用的解决方案,因此可以重用:

function inject(original, values) {
    var result = [];
    for (var i = 0 ; i < original.length ; i++) {
        result.push(original[i]);
        result.push.apply(result, values);
    }
    return result;
}

console.log(inject([1,2,3], [0,0,0])); 
// output: [1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0]

console.log(inject([1,1,1], [2,6,2,6])); 
// output: [1, 2, 6, 2, 6, 1, 2, 6, 2, 6, 1, 2, 6, 2, 6]

它利用本机的apply这里是一个解释 )函数来执行带有由values数组定义的任意参数列表的push

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM