亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

遍歷數組時,為什么有時候...

遍歷數組時,為什么有時候...

qq_殺意隆_0 2017-09-28 15:33:29
為何for(var?i?in?Array){}和for(var?i=0;i<Array.length;i++){}兩種寫法得到的結果有時會不一樣???
查看完整描述

3 回答

已采納
?
__innocence

TA貢獻313條經驗 獲得超208個贊

因為數組也是對象,所以第一種情況,除了得到數組的元素,也有可能得到數組的屬性

查看完整回答
反對 回復 2017-09-28
  • qq_殺意隆_0
    qq_殺意隆_0
    length也是數組的屬性,用第一種方式為什么不會被遍歷出
  • __innocence
    __innocence
    var arr = [] Object.getOwnPropertyDescriptor(arr,'length') 你會發現,數組的length屬性是不可枚舉的,所以在for in 里面沒有length屬性
?
橋本奈奈未

TA貢獻436條經驗 獲得超108個贊

補充下_innocence的答案,for...in遍歷對象的可枚舉屬性,因為數組也是對象,所以你可以

var?arr?=?[];arr.x=1;

這么寫是可以的,但是for循環遍歷的是數組的索引屬性。

大概就是醬

查看完整回答
1 反對 回復 2017-09-28
?
SKY子不語

TA貢獻1條經驗 獲得超1個贊

索引數組(下標為數字)遍歷用兩種方法是一樣的

關聯數組(hash數組)遍歷只能用方法1,因為關聯數組的length是0

查找: 索引數組 ????????????????????? hash數組
??????? 遍歷????????????????????????????? 不用遍歷
??? 受存儲位置影響??????????? 和存儲位置無關
??? 受數組元素個數影響 ?? 和數組中元素個數無關
? 總結: 今后只要希望快速查找元素時,就用hash數組

查看完整回答
1 反對 回復 2017-09-28
  • 3 回答
  • 0 關注
  • 2214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號