Object.keys会遍历对象吗

Object.keys(obj).forEach(item => {
    console.log(obj[item])
})

这样是否相当于遍历了两次,是否会对性能产生影响?

阅读 3.3k
3 个回答

根据 polyfill ,是得遍历两遍。不过如果量级很小,调用次数也不频繁的话,性能上没多大影响

是遍历了两次。但是不明白你这段代码的意图。时间复杂度是O(n)
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组
forEach() 方法对数组的每个元素执行一次提供的函数。
你的这段代码

Object.keys(obj).forEach(item => {
    console.log(obj[item])
})

Object.keys(obj)遍历返回obj的key数组,但是forEach输出的又是objvalue

或许你是希望遍历输出对象的key值

var obj = {
    '0': 'a',
    '1': 'b',
    '2': 'c'
}
console.log(...(Object.keys(obj))) 
// 0 1 2

你这代码直接 for in 一次遍历不就行了 ..

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题