[英]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.