0
点赞
收藏
分享

微信扫一扫

ES6 Object对象keys、values和assign方法使用

小a草 2023-08-07 阅读 42

ES6给Object对象新增了一些实用的方法。

  1. Object.keys() Object.keys()方法返回一个数组,包含了给定对象所有的键名:
const obj = {
a: 1,
b: 2
};

console.log(Object.keys(obj)); // ['a', 'b']
  1. Object.values() Object.values()方法返回一个数组,包含了对象所有的值:
const obj = {
a: 1,
b: 2
};

console.log(Object.values(obj)); // [1, 2]
  1. Object.assign() Object.assign()方法可以把任意多个源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { c: 3 };

const obj = Object.assign({}, obj1, obj2, obj3);

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

Object.assign()实际是浅拷贝,如果源对象的属性是对象,那么目标对象获得的是源对象的引用。

const obj1 = { a: { x: 1 }};
const obj2 = Object.assign({}, obj1);

obj1.a.x = 2;
console.log(obj2.a.x); // 2

上面代码中,源对象obj1的a属性引用了一个对象,Object.assign拷贝得到的是这个对象的引用。所以,源对象的任何变化都会反映到目标对象上。 4.Object.entries()

Object.entries(obj)方法它接受一个对象作为参数,返回一个数组,数组的每个元素是一个表示属性 [key, value] 的数组。 示例:

const obj = { 
foo: 'bar',
baz: 42
};

console.log(Object.entries(obj));

// [
// ['foo', 'bar'],
// ['baz', 42]
// ]

Object.entries()遍历对象的键值对: 可以使用Object.entries()与for...of循环遍历对象:

for (let [key, value] of Object.entries(obj)) {
console.log(`${key}: ${value}`);
}

总结

  • keys:获取对象的属性名
  • values:获取对象的属性值
  • entries:获取对象的属性和属性值
  • assign:可以将对象进行拷贝
举报

相关推荐

0 条评论