js合并多层级数组,Js合并数组
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()函数