思路:Object.keys方法只会遍历对象自身的属性而不会遍历原型链上的属性。
function iterate(obj)
{
//Object.keys方法只会遍历对象自身的属性而不会遍历原型链上的属性
let arr=Object.keys(obj)
let res=[]
for(let i in arr)
res[i]=arr[i].concat(': ',obj[arr[i]])
return res
}
扩展:for in方法既可以遍历对象自身属性,又可以遍历对象的原型链上的属性,但是可以使用hasOwnProperty方法来判断是否是对象自身的属性。
function iterate(obj)
{
let res=[]
for(let i in obj)
if(obj.hasOwnProperty(i))
res.push(i.concat(': ',obj[i]))
return res
}
总结:for of遍历数组是下标,for in遍历对象是键值,只不过数组的键值正好是下标。向数组中添加元素既可以使用arr[i],也可以使用push方法。



京公网安备 11010502036488号