为了账号安全,请及时绑定邮箱和手机立即绑定

Object.keys会遍历对象吗

Object.keys会遍历对象吗

慕仙森 2019-03-22 19:19:46
Object.keys(obj).forEach(item => {    console.log(obj[item])})这样是否相当于遍历了两次,是否会对性能产生影响?
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-03-31
?
DIEA

TA贡献1820条经验 获得超2个赞

是遍历了两次。但是不明白你这段代码的意图。时间复杂度是O(n)

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组

forEach() 方法对数组的每个元素执行一次提供的函数。

你的这段代码


Object.keys(obj).forEach(item => {

    console.log(obj[item])

})

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


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


var obj = {

    '0': 'a',

    '1': 'b',

    '2': 'c'

}

console.log(...(Object.keys(obj))) 

// 0 1 2


查看完整回答
反对 回复 2019-03-31
?
慕的地10843

TA贡献1785条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-03-31
  • 3 回答
  • 0 关注
  • 881 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信