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

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

JS的問題,,求解

JS的問題,,求解

whosyourdaddy1994 2015-11-20 09:34:41
var?arr?=?[1,?2,?2,?3,?4,?5,?6,?6]; function?getArray(a)?{ ?var?hash?=?{}, ?????len?=?a.length, ?????result?=?[]; ?for?(var?i?=?0;?i?<?len;?i++){ ?????if?(!hash[a[i]]){ ?????????hash[a[i]]?=?true; ?????????result.push(a[i]); ?????}? ?} ?return?result; } console.log(getArray(arr));這是個數組去重的方法,,里面的if(!hash[a[i]])這個嘆號hash是什么意思啊,,難道是hash對象內沒有a[i]這個值嗎,,那接下來hash[a[i]]=true是什么意思,,搞不懂。。里面的值會等于true
查看完整描述

2 回答

已采納
?
李曉健

TA貢獻1036條經驗 獲得超461個贊

開始 ?i = 0; ?a[i] = 1 ? hash = {} ?result?=?[], 這時hash[a[i]] 也就是 hash[1] ?是不存在的。就會走if里面的代碼hash={1: true} ??result?=?[1],

? ? ? ? ?i =1 時; a[i] = 2 ????hash = {1:true} ?result?=?[1] ,這時hash[a[i]] 也就是 hash[2] ?是不存在的。就會走if里面的代碼hash={1:true,2:true} ?result?=?[1,2]

????????i=2時;?a[i] = 2 ? ?hash = {1:true,2:true} ?result?=?[1,2] ;?這時hash[a[i]] 也就是 hash[2]=true 。就不會走if里的代碼 ,這里原數組里的第二個2就忽略了,也就是第2個2是不會進到result?

??????i = 3時;?a[i] = 3 ??hash = {1:true,2:true} ?result?=?[1,2] ;?這時hash[a[i]] 也就是 hash[3] ?是不存在的 。就會走if里面的代碼hash={1:true,2:true,3:true} ?result?=?[1,2,3]

? 這樣一直下去 ?最后得到的?result ?就是去掉重復的新數組


這樣說不知道你能不能看懂。

查看完整回答
反對 回復 2015-11-20
?
品茗見南山

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

多寫2個debugger;調試看看就知道了

查看完整回答
反對 回復 2015-11-20
  • 2 回答
  • 0 關注
  • 1582 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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