日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JS 5種遍歷對象的方式

瀏覽:173日期:2024-05-03 17:45:49

幾天前一個小伙伴問我 Object.getOwnPropertyNames() 是干什么用的

平時還真沒有使用到這個方法,一時不知如何回答

從方法名稱來分析,應該是返回的是對象自身屬性名組成的數組

那和 Object.keys() 方法不就一樣了嗎

感覺事情并不這么簡單,于是我仔細看了一下這幾種遍歷對象的方法的區別

for in

for in 循環是最基礎的遍歷對象的方式,它還會得到對象原型鏈上的屬性

// 創建一個對象并指定其原型,bar 為原型上的屬性const obj = Object.create({ bar: ’bar’})// foo 為對象自身的屬性obj.foo = ’foo’for (let key in obj) { console.log(obj[key]) // foo, bar}

可以看到對象原型上的屬性也被循環出來了

在這種情況下可以使用對象的 hasOwnProperty() 方法過濾掉原型鏈上的屬性

for (let key in obj) { if (obj.hasOwnProperty(key)) { console.log(obj[key]) // foo }}

這時候原型上的 bar 屬性就被過濾掉了

Object.keys

Object.keys() 是 ES5 新增的一個對象方法,該方法返回對象自身屬性名組成的數組,它會自動過濾掉原型鏈上的屬性,然后可以通過數組的 forEach() 方法來遍歷

Object.keys(obj).forEach((key) => { console.log(obj[key]) // foo})

另外還有 Object.values() 方法和 Object.entries() 方法,這兩方法的作用范圍和 Object.keys() 方法類似,因此不再說明

for in 循環和 Object.keys() 方法都不會返回對象的不可枚舉屬性

如果需要遍歷不可枚舉的屬性,就要用到前面提到的 Object.getOwnPropertyNames() 方法了

Object.getOwnPropertyNames

Object.getOwnPropertyNames() 也是 ES5 新增的一個對象方法,該方法返回對象自身屬性名組成的數組,包括不可枚舉的屬性,也可以通過數組的 forEach 方法來遍歷

// 創建一個對象并指定其原型,bar 為原型上的屬性// baz 為對象自身的屬性并且不可枚舉const obj = Object.create({ bar: ’bar’}, { baz: { value: ’baz’, enumerable: false }})obj.foo = ’foo’// 不包括不可枚舉的 baz 屬性Object.keys(obj).forEach((key) => { console.log(obj[key]) // foo})// 包括不可枚舉的 baz 屬性Object.getOwnPropertyNames(obj).forEach((key) => { console.log(obj[key]) // baz, foo})

ES2015 新增了 Symbol 數據類型,該類型可以作為對象的鍵,針對該類型 ES2015 同樣新增Object.getOwnPropertySymbols() 方法

Object.getOwnPropertySymbols

Object.getOwnPropertySymbols() 方法返回對象自身的 Symbol 屬性組成的數組,不包括字符串屬性

Object.getOwnPropertySymbols(obj).forEach((key) => { console.log(obj[key])})

什么都沒有,因為該對象還沒有 Symbol 屬性

// 給對象添加一個不可枚舉的 Symbol 屬性Object.defineProperties(obj, { [Symbol(’baz’)]: { value: ’Symbol baz’, enumerable: false }})// 給對象添加一個可枚舉的 Symbol 屬性obj[Symbol(’foo’)] = ’Symbol foo’Object.getOwnPropertySymbols(obj).forEach((key) => { console.log(obj[key]) // Symbol baz, Symbol foo})

Reflect.ownKeys

Reflect.ownKeys() 方法是 ES2015 新增的靜態方法,該方法返回對象自身所有屬性名組成的數組,包括不可枚舉的屬性和 Symbol 屬性

Reflect.ownKeys(obj).forEach((key) => { console.log(obj[key]) // baz, foo, Symbol baz, Symbol foo})

對比

方式 基本屬性 原型鏈 不可枚舉 Symbol for in 是 是 否 否 Object.keys() 是 否 否 否 Object.getOwnPropertyNames() 是 否 是 否 Object.getOwnPropertySymbols() 否 否 是 是 Reflect.ownKeys() 是 否 是 是

結論

這其中只有 for in 循環會得到對象原型鏈上的屬性,其它方法都只適用于對象自身的屬性

ES 語言后續添加的新特性不會對以前的代碼產生副作用,比如在 ES2015 之前就存在的 for in 循環,Object.keys() 和 Object.getOwnPropertyNames() 是肯定不會返回 Symbol 屬性的

以上就是JS 5種遍歷對象的方式的詳細內容,更多關于JS 遍歷對象的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品视频一区视频二区| 男女男精品网站| 亚洲日产av中文字幕| 激情丁香综合| 久久久久久黄| 午夜精品一区二区三区国产| 国产主播一区| 欧美午夜不卡影院在线观看完整版免费| 国产亚洲一区二区手机在线观看 | 国产色综合网| 欧美在线综合| 91久久精品无嫩草影院| 欧美黑人做爰爽爽爽| 精品一区二区三区中文字幕视频| 欧美日韩午夜电影网| 免费在线播放第一区高清av| 开心激情综合| 久久在线视频免费观看| 六月婷婷一区| 国产日韩欧美| 久久久男人天堂| 在线 亚洲欧美在线综合一区| 久久亚洲风情| 国产美女精品视频免费播放软件| 国产精品magnet| 都市激情国产精品| 99国产精品自拍| 日韩高清一区在线| 久久中文欧美| 日韩和的一区二在线| 国产精品日韩久久久| 欧美一区网站| caoporn视频在线| 最新亚洲一区| 97久久超碰| 日韩一区二区三区在线免费观看| 日韩在线a电影| 久久99精品久久久野外观看| 亚洲成av在线| 亚洲免费观看高清完整版在线观| 免费一级欧美片在线观看网站| 999精品在线| 欧美日韩午夜| 久久久久久久久丰满| 日韩精品一级中文字幕精品视频免费观看 | 欧美特黄一级大片| 日本综合视频| 一本大道色婷婷在线| 最新亚洲国产| 捆绑调教日本一区二区三区| 奶水喷射视频一区| 精品美女久久| 免费成人性网站| 精品国产91| 99视频一区| 精品一区二区三区中文字幕视频| 午夜精品亚洲| 麻豆久久久久久| 乱人伦精品视频在线观看| 捆绑调教美女网站视频一区| 亚洲深夜福利| jizzjizz中国精品麻豆| 亚洲区第一页| 99精品视频在线| 国产精品视频一区视频二区| 免费久久精品| 老司机精品视频在线播放| 欧美日韩免费观看一区=区三区| 国产极品模特精品一二| 一区二区三区视频免费观看| 你懂的国产精品永久在线| 五月天久久网站| 精品欧美日韩精品| 视频一区日韩精品| 99国产精品一区二区| 国产另类在线| 亚洲香蕉久久| 婷婷亚洲五月| 高清av不卡| 麻豆成人综合网| 日本va欧美va精品| 亚洲欧美日韩国产一区二区| 亚洲黄色免费av| 久久成人av| 蜜桃视频在线观看一区二区| 国产91精品对白在线播放| 免费在线播放第一区高清av| 亚洲影视一区二区三区| 久久激情婷婷| 理论片午夜视频在线观看| 国产探花在线精品一区二区| 亚洲香蕉视频| 免费精品视频| 黄色亚洲免费| 免费毛片在线不卡| 日韩高清中文字幕一区二区| 国产一区福利| 久久精品一区| 美女精品视频在线| 欧美日韩午夜| 日韩国产高清在线| 视频一区日韩精品| 一区二区国产在线| 免费看欧美美女黄的网站| 99热精品在线观看| 欧美日韩国产亚洲一区| 亚洲国内精品| 久久精品青草| 久久国产亚洲| 91精品蜜臀一区二区三区在线| 97精品国产| 国产精品伦理久久久久久| 国产一区国产二区国产三区| 久久中文字幕一区二区| 国产精品亚洲产品| 久久99青青| 精品国产不卡| 日产精品一区二区| 午夜欧美巨大性欧美巨大| 亚洲成a人片| 国产91一区| 黄色av日韩| 亚洲一区二区av| 色8久久久久| 日本午夜精品久久久| 国产欧美一区二区三区精品观看| 国产精品久久免费视频| 精品久久电影| 日韩中文视频| 色婷婷久久久| 偷拍欧美精品| 免费精品视频最新在线| 亚洲ww精品| 国产丝袜一区| 欧美黄色精品| a天堂资源在线| 欧美1级日本1级| 三级欧美韩日大片在线看| 亚洲三区欧美一区国产二区| 欧美日韩亚洲一区二区三区在线| 国产精品久久久久久久久久白浆 | 日韩国产欧美一区二区| 亚洲欧洲高清| 亚洲性视频h| 亚洲一区二区小说| 欧美伊人影院| 风间由美中文字幕在线看视频国产欧美| 成人精品久久| 99久久九九| 亚洲精品黄色| 麻豆一区二区三区| 久久国产亚洲精品| 免播放器亚洲一区| 国产免费播放一区二区| 国产精品久久观看| 欧美特黄a级高清免费大片a级| 亚洲精一区二区三区| 国产日韩欧美三区| 日韩综合精品| 久久午夜精品| 国产精品美女午夜爽爽| 欧美sm一区| 亚洲九九精品| 日韩av自拍| 天堂av在线一区| 国产精品任我爽爆在线播放| 久久久一本精品| 日本亚州欧洲精品不卡| 国产成人久久| 日韩影院精彩在线| 精品免费在线| 亚洲专区一区| 国产美女亚洲精品7777| 国产超碰精品| 亚洲精品第一| 久草免费在线视频| 午夜视频一区二区在线观看| 国产福利片在线观看| 免费在线观看精品| 精品视频自拍| 噜噜噜久久亚洲精品国产品小说| 免费观看亚洲天堂| 亚洲综合欧美| 国产成人精品一区二区免费看京| 香蕉视频成人在线观看| 精品国产一区二区三区av片| 久久高清一区| 久久精品国产亚洲aⅴ| 免费久久99精品国产自在现线| 精品国产成人| 日韩一区二区三免费高清在线观看| 久久久久久一区二区| 亚洲专区视频| 人人精品亚洲| 免费一级欧美在线观看视频| 视频一区在线视频| 香蕉成人av| 免费在线播放第一区高清av| 蜜桃久久av一区| 久久国产免费|