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];
jquery在一个元素后追加标签}
}
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"); });
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论