对象遍历
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}
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178501.html原文链接:https://javaforall.net
