Object.keys(obj) 返回對象的key組成的數組數組
返回一個全部元素爲字符串的數組,其元素來自於從給定的object上面可直接枚舉的屬性,不會返回原型上的方法。bash
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
eyecolor:"blue"
};
console.log(Object.keys(obj))
['firstname', 'lastname', 'age', 'eyecolor'] //返回key組成的數組
複製代碼
Object.values(obj) 返回對象的value組成的數組spa
返回一個由value組成的數組,其元素是在對象上找到的可枚舉屬性值。code
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
eyecolor:"blue"
};
console.log(Object.values(obj))
['John', 'Doe', 50, 'blue'] //返回value組成的數組
複製代碼
Object.assign() 能夠將源對象複製到目標對象中對象
Object.assign(target, ...sources)
target
爲目標對象,...sources
爲源對象(能夠爲多個對象)字符串
// 淺拷貝對象
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
love:{
color: "blue",
sport: "football"
}
};
const copy = Object.assign({}, obj);
console.log(copy) // 返回淺拷貝的對象,修該obj會同時修改copy的值
// 合併多個對象
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
love:{
color: "blue",
sport: "football"
}
};
const obj2 = { other: "cat" };
const obj3 = { car: "Benz" };
const compose = Object.assign(obj, obj2, obj3); // 返回三個對象合併組成的對象,若有相同屬性則會被後續參數中具備相同屬性覆蓋。
// 深拷貝對象
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
love:{
color: "blue",
sport: "football"
}
};
const deepClone = JSON.parse(JSON.stringify(obj)); // 返回深拷貝的對象,修改obj不會影響該對象
複製代碼
Object.entries(obj) 返回對象的key和value組成的數組get
Object.entries(obj) 方法返回一個對象key和value鍵值對組成的數組原型
const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj));
// [["foo", "bar"], ["baz", 42]]
複製代碼
obj.hasOwnProperty() hasOwnProperty 方法判斷對象中屬性是否存在string
const obj = {
firstname:"John",
lastname:"Doe",
age:50,
love:{
color: "blue",
sport: "football"
}
};
console.log(obj.hasOwnProperty('love')) // true
複製代碼