怎么把两个js 数组过滤合并成一个数组?谢谢
varprovince=[{id:1,name:"北京"},{id:2,name:"河南"},{id:3,name:"河北"}]varcity=[{pid:1,name:...
var province=[ {id:1,name:"北京"}, {id:2,name:"河南"}, {id:3,name:"河北"} ] var city=[ {pid:1,name:'北京市'}, {pid:2,name:'郑州市'}, {pid:2,name:'洛阳市'}, {pid:3,name:'石家庄市'} ] newarr=[ {name:'北京',city:'北京市'}, {name:'河南',city:['郑州市','洛阳市']}, {name:'河北',city:'石家庄市'} ]
展开
1个回答
展开全部
首先考虑的是两个数组之间靠什么来关联:
根据newArr得出: province的id对应的city里面的pid;
所以遍历数组时候合并的逻辑: id ==pid.然后合为新数组的一个元素。
var newArr=[];
function combineArr(arr1, arr2){
var len = arr1.length;
for(var i=0; i<len; i++){
if(arr1[i].id == arr2[i].pid){
var obj = {};
obj['name']=arr1[i].name;
obj['city'] = arr2[i].name;
newArr.push(obj);
}
return newArr;
}
}
根据newArr得出: province的id对应的city里面的pid;
所以遍历数组时候合并的逻辑: id ==pid.然后合为新数组的一个元素。
var newArr=[];
function combineArr(arr1, arr2){
var len = arr1.length;
for(var i=0; i<len; i++){
if(arr1[i].id == arr2[i].pid){
var obj = {};
obj['name']=arr1[i].name;
obj['city'] = arr2[i].name;
newArr.push(obj);
}
return newArr;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询