鍍金池/ 問(wèn)答/HTML/ Object.keys會(huì)遍歷對(duì)象嗎

Object.keys會(huì)遍歷對(duì)象嗎

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

這樣是否相當(dāng)于遍歷了兩次,是否會(huì)對(duì)性能產(chǎn)生影響?

回答
編輯回答
蔚藍(lán)色

你這代碼直接 for in 一次遍歷不就行了 ..

2017年1月5日 00:00
編輯回答
眼雜

是遍歷了兩次。但是不明白你這段代碼的意圖。時(shí)間復(fù)雜度是O(n)
Object.keys() 方法會(huì)返回一個(gè)由一個(gè)給定對(duì)象的自身可枚舉屬性組成的數(shù)組
forEach() 方法對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)。
你的這段代碼

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

Object.keys(obj)遍歷返回obj的key數(shù)組,但是forEach輸出的又是objvalue

或許你是希望遍歷輸出對(duì)象的key值

var obj = {
    '0': 'a',
    '1': 'b',
    '2': 'c'
}
console.log(...(Object.keys(obj))) 
// 0 1 2
2017年7月19日 12:54
編輯回答
傲嬌范

根據(jù) polyfill ,是得遍歷兩遍。不過(guò)如果量級(jí)很小,調(diào)用次數(shù)也不頻繁的話,性能上沒(méi)多大影響

2017年12月3日 10:09