# for in
- 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)
- 使用object.hasOwnProperty(key)来过滤不是自身的属性
for (const key in object) {
if (object.hasOwnProperty(key)) {
const element = object[key];
}
}
# Object.keys()
- 返回自身key组成的数组(不含继承,所有可枚举属性)
var obj = {'0':'a','1':'b','2':'c'};
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
# Object.values()
- 返回自身属性组成的数组(不含继承,所有可枚举属性)
# Object.getOwnPropertyNames(obj)
- 返回自身属性组成的数组(包含不可枚举属性)
# Reflect.ownKeys(obj)
- 返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.
var obj = {'0':'a','1':'b','2':'c'};
Reflect.ownKeys(obj).forEach(function(key){
console.log(key,obj[key]);
});