为了账号安全,请及时绑定邮箱和手机立即绑定

代码部分有个2个地方不懂

1. topImgSpiceIndex=Math.floor(Math.random()*(imgsArrangeArr.length-topImgNum));

为什么要减去topImgNum?

2.视频里  imgsArrangeArr 在getInitialState( )初始化时,是说  它是存储图片的多个状态(比如图片的位置信息pos)。 imgsArrangeArr数组里的数组元素都是一个状态对象。

在大管家的render里的imageDatas.forEach函数里  if(!this.state.imgsArrangeArr[index]) 这句话。imgsArrangeArr[index]  ,比如imgsArrangeArr [ 0 ]不应该是 imgsArrangeArr数组里的第一个数组元素,也就是第一个状态对象pos吗???

我不是很理解这个地方。

所以我不知道怎么理解了。求解释

正在回答

1 回答

第一个问题 ,之所以要减去 topImgNum, 是因为之后从某一位置取 topImgNum 个,所以要把索引值往前移动,然后往后去取。如果不减的话可能就会出现数组一处的情况,比如数组长度是12,取3个,那么肯定不能从index为10 的地方开始取(下标从0开始),  因为10之后只有11这个下标了,非要取3个,只能取 arr[12], 可数组一共只有12 个元素,arr[12] 是第13个元素,所以数组溢出。  综上,必须先签掉topImgNum个。   

第二个问题, 建议你还是先去看看数组咋回事,index是下标,比如 arr[0]  中的 0 ,arr[3]   中的3,它是一个索引值,取第几个。另外,数组中每个元素都是一个对象,pos是每个对象的一个属性,和你的index不一样。

廖雪峰老师的网站上讲JavaScript比较好,建议你可以去学习一下数组和对象相关的东西  https://www.liaoxuefeng.com/

0 回复 有任何疑惑可以回复我~
#1

慕粉2203123783 提问者

感谢你的回答。 现在这两个问题都明白了。 现在突然想到另一个问题,之前取了一张图片放到中心位置,那么取上边区域的图片时为什么不把中心图片减去,分布左右两边的图片时不把中心图片和上边区域减去
2018-04-10 回复 有任何疑惑可以回复我~
#2

慕粉2203123783 提问者

忽略我刚刚的问题吧,是我脑抽想错了。 它已经移除了
2018-04-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
React实战--打造画廊应用(上)
  • 参与学习       57309    人
  • 解答问题       273    个

颠覆式前端UI开发框架 React,打造图片画廊实践案讲解

进入课程

代码部分有个2个地方不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信