0
点赞
收藏
分享

微信扫一扫

属性遍历(遍历对象自身的属性和值)

愚鱼看书说故事 2022-03-13 阅读 233
javascript

描述

找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)
1、返回数组,格式为 key: value
2、结果数组不要求顺序

示例1

输入:

var C = function() {this.foo = 'bar'; this.baz = 'bim';}; 
C.prototype.bop = 'bip'; 
iterate(new C());

复制输出:

["foo: bar", "baz: bim"]
//1、Object.keys(obj) 只会遍历实例属性key值,不会遍历原型上的属性
 
function iterate(obj) {
    const keyArr = Object.keys(obj)
    const temp = []
    for(let i in keyArr){
        temp[i] = keyArr[i].concat(': ',obj[keyArr[i]])
    }
    return temp
}
//2、for in可以遍历到obj的原型属性和方法,如果不想遍历原型上的,可以在循环内通过obj.hasOwnProperty()判断其是否是自己的实例属性
 
function iterate(obj) {
    const temp = []
    for(let key in obj){
        if(obj.hasOwnProperty(key)){
            temp.push(key.concat(': ',obj[key]))
        }
    }
    return temp
}
举报

相关推荐

0 条评论