1,for in 遍历对象
- for in 遍历对象的时候,不仅仅会查找当前对象上的属性,而且还会查找对象原型上的属性
如果只要查找对象当前的属性可以使用 hasOwnproperty判断
let obj = {
name: "宋",
age: 18
}
Object.prototype.faa = "3333"
for (let k in obj) {
// 查找当前对象下以及原型上的属性
console.log("k", k)
// k name
// k age
// k faa
}
for (let k in obj) {
if (obj.hasOwnProperty(k)) {
//只查找当前对象下的属性,不查找原型上的属性
console.log("k1", k)
// k1 name
// k1 age
}
}
2,Object.keys 遍历
Object.keys遍历对象,拿到对象的键组成的数组
- Object.keys(obj) 遍历对象属性键,拿到对象键值组成的数组
- Object.keys(obj) 遍历对象属性键,不会遍历啊原型上的属性键
let obj = {
name: "宋",
age: 18
}
Object.prototype.faa = "3333"
Object.keys(obj).forEach(ele => {
console.log(ele)
//name
//age
})
Object.keys() 遍历字符串
Object.keys 遍历字符串的时候,相当于用split(),然后组成的数组
let str = "122222wdwwd11"
let srtlist = Object.keys(str)
console.log(srtlist)
Object.keys() 获取数组的索引组成的数组
let list = [
{
name: '1111'
}, {
name: '222'
}
]
let result = Object.keys(list)
console.log("list", result)
//list [ '0', '1' ]
Object.values 获取数组的值组成的数组
let result1 = Object.values(list)
console.log("66", result2)
// 66 [ { name: '1111' }, { name: '222' } ]
Object.entries 获取数组的值和索引组成的对象的数组
let result2 = Object.entries(list)
console.log("66", result1)