Appearance
Object
Object.assign
通过复制一个或多个对象来创建一个新的对象。 Object.assign() 只复制属性值,假如源对象是一个对象的引用,它仅仅会复制其引用值。
js
const target = { a: 1, b: 2 }
const source = { b: 4, c: 5 }
const returnedTarget = Object.assign(target, source)
console.log(returnedTarget)
// { a: 1, b: 4, c: 5 }
console.log(console.log(target))
// { a: 1, b: 4, c: 5 }
TIP
- key 值相同时,后面的 value 会覆盖之前的 value
Object.assign()
的第一个参数会发生变化
复制对象
js
const target = { a: 1, b: 2 }
const copy = Object.assign({}, target)
console.log(copy)
// { a: 1, b: 2 }
Object.keys
返回一个包含所有给定对象自身可枚举属性名称的数组。
js
const testObject = {
a: 1,
b: 2,
}
console.log(Object.values(testObject))
// ['a', 'b']
Object.values
返回给定对象自身可枚举值的数组。
js
const testObject = {
a: 1,
b: 2,
}
console.log(Object.values(testObject))
// [1, 2]
Object.entries
返回给定对象自身可枚举属性的 [key, value] 数组。
Object.entries()返回一个数组,其元素是与直接在 object 上找到的可枚举属性键值对相对应的数组。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。
js
const testObject = {
a: 1,
b: 2,
}
Object.entries(testObject).forEach(([key, value]) => {
console.log(`key: ${key}, value: ${value}`)
// key: a, value: 1
// key: b, value: 2
})
Object 转化为 Map
js
const testObject = {
a: 1,
b: 2,
}
const map = new Map(Object.entries(testObject))
console.log(map)
// Map(2) {'a' => 1, 'b' => 2}