题解 | #属性遍历#

属性遍历

https://www.nowcoder.com/practice/0158a4f165154f2eaf27d1907aa55e57

思路: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方法。

#属性遍历#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

07-17 12:07
门头沟学院 Java
勇敢牛牛不怕困难
投递OPPO等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务