js中数组与数组,数组与对象,对象与对象间的合并

数组与数组间的合并:

var arr1=['a','b'];
var arr2=['c','d'];
arr1.concat(arr2);

//arr1=['a','b','c','d'];

对象与对象间的合并:

var obj1={'a':12,'b':'test'};
var obj2={'c':32,'a':3,'d':'name'};

function concatObj(obj1,obj2){
   for(var item in obj2){    
       if(!obj1.hasOwnProperty(item) && obj2.hasOwnProperty(item)){
           obj1[item]=obj2[item];
       }else{
           obj1[item]+=obj2[item]
       }
   } 
}
concatObj(obj1,obj2);
// obj1={'a':15,'b':'test','c':32,'d':'name'}

数组与对象间的合并:

var arr=[];
var t={}; //临时对象,用于装特征标签
var obj={
    o1:{'name':'zhangsan'},
    o2:{'name':'lisi'}
}
function cancatArrWithObj(arr,obj){
    for(var item in obj){  //遍历对象
        if(!t[item]){   //判断当前对象的属性是否存在与临时对象t中
            arr.push(obj[item]); //如果没存在,则把当前obj[item]属性值添加到数组中
            t[item]=arr.length-1+'';  //临时对象t[item]存储当前添加到数组的元素所在数组的索引值(string类型)
        }else{ //如果临时对象中存在当前属性
            var i=parseInt(t[item]);   //取得当前属性在数组的索引值
            arr[i]['name']+=obj[item];  //修改数组对应元素的值
        }
    }
}

数组排重(ES6)

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

var result=[...new Set(arr)];
//result  [1, 3, 5, 4, 2]

对象合并(ES6)

var o1={a:1,b:2,c:3},
    o2={b:4,d:5};

var obj=Object.assign({},o1,o2); //重复属性自动覆盖
//obj {a: 1, b: 4, c: 3, d: 5}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值