ES6中
注意解构赋值并不赋值原型上的属性
Object.keys(obj)
返回obj中所有属性的key,组合成一个数组。每一个key为一项。
Object.values(obj)
返回obj中所有属性的value,组合成一个数组。每一个value为数组中的一项
Object.entries
返回obj中所有key和value,每一个对应的key和value组成一个数组。每个数组在组成一个数组
且这三个方法拿到的都是自身的属性,拿不到原型上的
obj ={
a:1,
b:2,
c:3,
d:4`
};
console.log(Object.keys(obj)); // ["a", "b", "c", "d"]
console.log(Object.values(obj)); //[1, 2, 3, 4]
console.log(Object.entries(obj)); // [["a", 1], ["b", 2], ["c", 3], ["d", 4]]
//**且这三个方法拿到的都是自身的属性,拿不到原型上的**
//也就是说遍历的时候不用使用hasOwnProperty()判断 过滤了
//如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。此方法不会检查对象原型链中的属性;该属性必须是对象本身的一个成员。
//同时可以使用for of遍历
for (let [k , v]) of Object.entries(obj)){ //对象的结构赋值
console.log( k ,v)
}