猿问

Object.keys会遍历对象吗

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

    console.log(obj[item])

})

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


慕仙森
浏览 882回答 3
3回答

人到中年有点甜

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

DIEA

是遍历了两次。但是不明白你这段代码的意图。时间复杂度是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

慕的地10843

你这代码直接 for in 一次遍历不就行了 ..
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答