代碼部分有個2個地方不懂
1. topImgSpiceIndex=Math.floor(Math.random()*(imgsArrangeArr.length-topImgNum));
為什么要減去topImgNum?
2.視頻里 ?imgsArrangeArr 在getInitialState( )初始化時,是說 ?它是存儲圖片的多個狀態(tài)(比如圖片的位置信息pos)。?imgsArrangeArr數(shù)組里的數(shù)組元素都是一個狀態(tài)對象。
在大管家的render里的imageDatas.forEach函數(shù)里 ?if(!this.state.imgsArrangeArr[index]) 這句話。imgsArrangeArr[index] ?,比如imgsArrangeArr [ 0 ]不應(yīng)該是?imgsArrangeArr數(shù)組里的第一個數(shù)組元素,也就是第一個狀態(tài)對象pos嗎???
我不是很理解這個地方。
所以我不知道怎么理解了。求解釋
2018-04-07
第一個問題 ,之所以要減去?topImgNum,?是因為之后從某一位置取?topImgNum?個,所以要把索引值往前移動,然后往后去取。如果不減的話可能就會出現(xiàn)數(shù)組一處的情況,比如數(shù)組長度是12,取3個,那么肯定不能從index為10?的地方開始?。ㄏ聵?biāo)從0開始),? 因為10之后只有11這個下標(biāo)了,非要取3個,只能取?arr[12],?可數(shù)組一共只有12?個元素,arr[12]?是第13個元素,所以數(shù)組溢出。? 綜上,必須先簽掉topImgNum個。? ?
第二個問題,?建議你還是先去看看數(shù)組咋回事,index是下標(biāo),比如?arr[0]? 中的 0 ,arr[3]? ?中的3,它是一個索引值,取第幾個。另外,數(shù)組中每個元素都是一個對象,pos是每個對象的一個屬性,和你的index不一樣。
廖雪峰老師的網(wǎng)站上講JavaScript比較好,建議你可以去學(xué)習(xí)一下數(shù)組和對象相關(guān)的東西??https://www.liaoxuefeng.com/