js将多个JSON对象合并为一个对象和删除JSON对象中的某个元素

对象合并

1.ES6在Object新加的方法 assign()

1.作用:将多个对象{} 合并成一个独立对象。

2.使用方式: Obejct.assign(合并的对象,传入合并中的对象....)

 let user = {name:'无敌人',age:19};
 let page = {pageSize:10,currentPage:1};
 let newObj = {};
 
 Object.assign(newObj,user,page);

在这里插入图片描述
2、方法二

var obj = { name: 'coco' }
var obj1 = { age: 27 }
var newObj = { ...obj, ...obj1 };
console.log(newObj); // { name: "coco", age: 27 } 

3、方法三

// 合并对象
    function extend(target, source) {
        for (var obj in source) {
            target[obj] = source[obj];
        }
        return target;
    }

    // 测试
    var a = {a: 1, b: 2};
    var b = {a: 2, b: 3, c: 4};

    var c = extend(a, b);
    console.log(c);

4、方法四

jQuery$.extend(obj1,obj2)

var obj1 = {'a': 1};
var obj2 = {'b': 1};
var obj3 = $.extend(obj1, obj2)//console.log(obj3); // {a: 1, b: 1}  obj1已被修改var obj3 = $.extend({}, obj1, obj2)//console.log(obj3); //{a: 1, b: 1} 不会改变obj1,obj2

5、方法五:

var obj1={'a':1};
var obj2={'b':2,'c':3};
for(var key in obj2){
     if(obj2.hasOwnProperty(key)===true){//只遍历对象自身的属性,而不包含继承于原型链上的属性,此处hasOwnProperty是判断自有属性,使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
          obj1[key]=obj2[key];
	} 
}

console.log(obj1);//{'a':1,'b':2,'c':3};

使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问:
例:

obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象     var
keys=[];//定义一个数组用来接受key     var values=[];//定义一个数组用来接受value      
for(var key in obj){    
    keys.push(key);    
    values.push(obj[key]);//取得value      
    }     alert("keys is :"+keys+" and values is :"+values);    //keys is : name,age,sex,bar and values is : wjy,26,female,10  ```

使用 hasOwnProperty 方法, 这将会避免原型对象扩展带来的干扰:
例:

    var keys=[];   
    var values=[];    
    for(var key in obj){   
        //只遍历对象自身的属性,而不包含继承于原型链上的属性。  
        if (obj.hasOwnProperty(key) === true){  
            keys.push(key);    
            values.push(obj[key]);   
            }                 
        }  
    alert("keys is :"+keys+" and values is :"+values);     }   Object.prototype.bar = 1;// 修改Object.prototype   var
o={"name":"wjy","age":26,"sex":"female"};//定义一个object对象    allpro(o); 
//keys is : name,age,sex and values is: wjy,26,female  ```

删除对象

例1:

var person={"name": "xiaojiayu", "age": 24, "gender": "man"};
delete person.age

例2:

var str={
	name:"lili",
	age:12,
	sex:"女"
};
//遍历
$.each(str,function(_key){
    var key = _key;
    var value =str[_key];
    if(_key=="age")
    {  //删除
       delete str[_key];
    }
});
$.each(str,function(_key){
    console.log("删除后的结果:"+_key+"=="+str[_key]+"\r\n");
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值