ES6 之前,循环对象常见做法是用 for...in但是 for...in 循环的问题在于它会遍历原型链中的属性,所以需要使用 hasOwnProperty 来执行检查属性是否属于该对象。
ES6 之后,我们对于对象的循环有了新的方法 Object.keys , Object.values , Object.entries
Object.keys 创建一个包含对象所有属性的数组
Object.values 创建一个包含对象中每个属性值得数组
Object.entries 创建一个二维数组。每个数组都有俩个元素,一个是属性名,一个是属性值
例
const obj={
a:1,
b:2,
c:3
}
var keys = Object.keys(obj);
console.log(keys) // ["a","b","c"]
var values = Object.values(obj);
console.log(values) // ["1","2","3"]
var entries = Object.entries(obj);
console.log(entries) // 会输出一个既有属性名,又有属性值得数组