怎么获取对象属性的长度

156 阅读1分钟

1.很多同学以及工作几年的前端工程师一想到这个问题第一反应可能是用Object.keys().length这个方法,一般情况下输出是没什么问题的

2.但大家想过这个方法是否存在问题吗

 const obj={
            [Symbol('id')]:1
           }
console.log(Object.keys(obj).length)

输出结果为0

这时候会发现Object.keys()是存在问题的

3.现在给大家说一个方法Reflect.ownKeys()这个方法 这个方法是返回一个由目标对象自身的属性键组成的数组,当我们使用这个方法获取对象属性的长度就没有问题了。

 const obj={
            [Symbol('id')]:1
           }
console.log(Reflect.ownKeys(obj).length

输出结果为1