遍历对象
for循环遍历
for in
-
语法
-
for(let key in obj){ // 执行语句 }
-
key为对象的
属性名(键名)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 for(let key in obj){ console.log('key',obj[key]) // 111 222 }
-
若Symbol 值作为属性名,遍历对象的时候,该属性不会出现在for in 循环中;
-
获取对象的属性名
[1]Reflect.ownKeys()
-
Reflect存在一个ownKeys方法,该方法会返回一个数组,该数组包含对象的
所有
属性的属性名; -
语法
-
Reflect.ownkeys(obj)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 console.log('key', Reflect.ownKeys(obj)) // ['a1','a2',Symbol(a3), Symbol(a4)] Reflect.ownKeys(obj).forEach(item=>{ console.log('vlaue', obj[item]) // 111 222 333 444 })
-
[2]Object.keys()
-
Obeject存在一个keys方法,该方法返回返回对象自身的
字符串属性名(键值名)
组成的数组,不包含Symbol属性; -
语法
-
Object.keys(obj)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 console.log('key', Object.keys(obj)) // ['a1','a2'] Object.keys(obj).forEach(item=>{ console.log('vlaue', obj[item]) // 111 222 })
-
[3]Object.getOwnPropertySymbols()
-
Object存在一个getOwnPropertySymbols方法,该方法返回返回对象自身的
Symbol属性名(键名)
组成的数组,不包含字符串属性; -
语法
-
Object.getOwnPropertySymbols(obj)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 console.log('key', Object.getOwnPropertySymbols(obj)) // [Symbol(a3), Symbol(a4)] Object.getOwnPropertySymbols(obj).forEach(item=>{ console.log('value', obj[item]) // 333 444 })
-
获取对象的属性值
-
Obeject存在一个values方法,该方法返回返回对象自身的
字符串属性值(键值)
组成的数组,不包含Symbol属性值; -
语法
-
Object.values(obj)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 console.log('key', Object.values(obj)) // [111,222]
-
获取对象的属性
-
Obeject存在一个entries方法,该方法返回返回对象自身的[属性名,属性值]组成的二位维数组,不包含Symbol属性值;
-
语法
-
Object.entries(obj)
-
-
示例
-
const obj = { a1:111, a2:222 } let a3 = Symbol('a3'); let a4 = Symbol('a4'); obj[a3] = 333 obj[a4] = 444 console.log('key', Object.entries(obj)) // [["a1", 111], [ "a2", 222]]
-