我能够弄清楚如何通过另一个问题增加数组读数。现在我似乎无法弄清楚如何去除因为我的值被设置回0.我试图避免循环。
我希望实现的顺序是:
增量----“/”,“/ about”,“/ list”< - list是结束。减少只是倒带。每次减少只需要退一步。
let i = 0;
let stuff =["/", "about","list"];
next() {
this.props.dispatch(increaseCounter())
i = (i+1)%stuff.length;
}
prev() {
this.props.dispatch(decreaseCounter())
i = (i-1)%stuff.length; <------This gets wonky once I reach the end of my array.
}
答案 0 :(得分:1)
如果您希望next()
在i
和0
以及2
之间增加prev()
,请在2
和0
之间递减您可以使用以下内容:
next() {
this.props.dispatch(increaseCounter());
i = Math.min(i + 1, stuff.length - 1);
}
prev() {
this.props.dispatch(decreaseCounter());
i = Math.max(i - 1, 0);
}
答案 1 :(得分:1)
%
的问题在于它是一个具有截断除法的余数运算符,而不是具有分层除法的modulo运算符。当除数(i-1
)变为负数时,结果也是负数。你可以使用
if (--i < 0) i = stuff.length - 1;
或
i = (i + stuff.length - 1) % stuff.length;
代替(仅适用于预期范围内i
的输入值)