js合并多层级数组,Js合并数组

http://www.itjxue.com  2023-01-17 17:58  来源:未知  点击次数: 

js中数组合并

描述

方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。

示例

var a = [1,2,3];

a.concat(4, 5) //返回 [1,2,3,4,5]

a.concat([4,5]); //返回 [1,2,3,4,5]

a.concat([4,5],[6,7]) //返回 [1,2,3,4,5,6,7]

a.concat(4, [5,[6,7]]) //返回 [1,2,3,4,5,[6,7]]

js 多个数组合并 每一个值对应一个数组

var?a=['北京','天津','河北','上海','广东'];

var?b=['海淀','滨海新区','石家庄','浦东','深圳'];

var?c=['黄庄','海港','新华区','陆家嘴','福田区'];

var?d=a.map((o,i)=[o,b[i],c[i]]);

js 数组合并

楼上的答案确认是对的,再给你一个答案,我觉得我写的比楼上的啰嗦。

/*

var?datas?=?[

['红色',?'蓝色'],

['XL'],

['图片',?'文字']

];

*/

/*

var?datas?=?[

['红色',?'蓝色'],

['XL'],

['图片',?'文字'],

[1,2,3,4,5,6,7,8]

];

var?datas?=?[

['红色',?'蓝色'],

['XL','MS'],

['图片',?'文字']

];

*/

var?datas?=?[

['红色',?'蓝色'],

['XL','MS'],

['图片',?'文字'],

['WIN','LINUX','UNIX','OSX']

];

var?merge1?=?function(arr1,arr2)?{

var?result?=?[];

for(var?i=0;iarr1.length;i++)?{

for(j=0;jarr2.length;j++)?{

var?tmp?=?[];

tmp.push(arr1[i]);

tmp.push(arr2[j]);

result.push(tmp);

}

}

return?result;

}

var?merge2?=?function(arr1,arr2)?{

var?result?=?[];

for(var?i=0;iarr2.length;i++)?{

for(var?j=0;jarr1.length;j++)?{

var?tmp?=?copy(arr1[j]);

tmp.push(arr2[i]);

result.push(tmp);

}

}

return?result;

}

var?copy?=?function(arr)?{

var?newArr?=?[];

return?newArr.concat(arr);

}

var?iterator?=?function(data)?{

return?{

data:data,

len:data.length,

current:0,

hasNext:function(){

return?this.current??this.len;

},

next:function()?{

if(!this.hasNext())?{

return?null;

}

var?i?=?this.current;

this.current++;

return?this.data[i];

}

}

}

var?it?=?iterator(datas);

var?a1=null,a2=null;

while(it.hasNext())?{

if(a1?==?null)?{

a1?=?it.next();

}

a2?=?it.next();

if(a2?==?null)?{

break;

}

if(a1[0]?instanceof?Array)?{

a1=merge2(a1,a2);

}else{

a1?=?merge1(a1,a2);

console.log(a1)

}

}

console.log(a1);

JS在合并多个数组时如何去重

var c = a.concat(b),//合并成一个数组 temp = {},//用于id判断重复 result = [];//最后的新数组 //遍历c数组,将每个item.id在temp中是否存在值做判断,如不存在则对应的item赋值给新数组,并将temp中item.id对应的key赋值,下次对相同值做判断时便不会走此分支,达到判断重复值的目的; c.map((item,index)={ if(!temp[item.id]){ result.push(item); temp[item.id] = true } }) console.log(result)

js递归(二)——合并多维数组

1.递归实现

用forEach和reduce做一个简单的封装joinArr()函数显示数组的合并

2.补充

完善:封装成joinArr()函数

(责任编辑:IT教学网)

更多

推荐其它软件文章