Object.keys(obj) 返回對象的key組成的數組
返回一個全部元素爲字符串的數組,其元素來自於從給定的object上面可直接枚舉的屬性,不會返回原型上的方法。數組
const obj = { firstname:"John", lastname:"Doe", age:50, eyecolor:"blue" }; console.log(Object.keys(obj)) ['firstname', 'lastname', 'age', 'eyecolor'] //返回key組成的數組
Object.values(obj) 返回對象的value組成的數組
返回一個由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組成的數組
Object.entries(obj) 方法返回一個對象key和value鍵值對組成的數組字符串
const obj = { foo: 'bar', baz: 42 }; console.log(Object.entries(obj)); // [["foo", "bar"], ["baz", 42]]
obj.hasOwnProperty() hasOwnProperty 方法判斷對象中屬性是否存在
const obj = { firstname:"John", lastname:"Doe", age:50, love:{ color: "blue", sport: "football" } }; console.log(obj.hasOwnProperty('love')) // true