js对象遍历和合并

对象遍历

对象{键:值}
object.keys()会返回对象中键的数组
object.values()会返回对象中值的数组
Object.entries() 是返回一个给定对象自身可枚举属性的键值对数组

		var var obj  = {a:1,b:2,c:4}; //目标对象
		console.log("索引"+Object.keys(obj));
		console.log("价值"+Object.values(obj));
		console.log("entries输出"+Object.entries(obj));

输出

索引a,b,c
价值1,2,4
entries输出a,1,b,2,c,4

可以使用Object.keys()收集keys,然后通过 key 去对象取对应的值:

var var obj  = {a:1,b:2,c:4}; //目标对象
for(let key of Object.keys(obj))
		{
			let m = obj[key];
			console.log(m);
		}

输出

1
2
4

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

Object.entries() 返回键值对数组,如 [ [key1, value1], [key2, value2], …, [keyN, valueN] ]。

var var obj  = {a:1,b:2,c:4}; //目标对象
for(let [key , value] of Object.entries(obj))
		{
			console.log(key+':'+value);
		}

输出

a:1
b:2
c:4

对象合并

Object.assign可以实现对象的合并。

Object.assign(target, …sources)

  • Object.assign会将source里面的可枚举属性复制到target,如果和target的已有属性重名,则会覆盖。
  • 后续的source会覆盖前面的source的同名属性。
  • Object.assign复制的是属性值,如果属性值是一个引用类型,那么复制的其实是引用地址,就会存在引用共享的问题。
		var target  = {a : 1}; //目标对象
		var source1 = {b : 2}; //源对象1
		var source2 = {c : 3}; //源对象2
		var source3 = {c : 4}; //源对象3,和source2中的对象有同名属性c
		var obj = Object.assign(target,source1,source2,source3);
		console.log(obj);

输出

{a: 1, b: 2, c: 4}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值