我的函数中有以下循环
如果 x <10,我看到它循环,但如果它大于 10,即使 y < x 的条件满足,它也会失败
function insert(x,y) {
for (var shift = y; shift < x; shift++) {
//get into loop for insert (9,2) but not for insert(10,2)
}
}
这是实际功能,我正在尝试使用 rapheal.js 在场景之前可视化插入,它适用于 insertBeforeTo(9,2) 但是当我尝试 insertBeforeTo(10,2) 时,它不会进入循环。
function insertBeforeTo(whichElementI, insertBeforeI) {
var twhichElement = blocks[whichElementI];
blocks[whichElementI].animate({ x: blocks[insertBeforeI].attr('x') }, 1000, ">");
var shiftplusone = insertBeforeI;
for (var shift = insertBeforeI; shift < whichElementI; shift++) {
++shiftplusone;
blocks[shift].animate({ x: blocks[shiftplusone].attr('x') }, 1000, ">");// check value actually changes
}
}
下选民:介意解释吗?
发现问题:在调试时,我看到“”中的 whichElementI 和 insertBeforeI 值。所以我假设它把它当作一个字符串,正如 nnnnn 和 paxdiablo 正确指出的那样,它把它当作字符串而不是 int 所以它适用于 whichElementI = 9 和 insertBeforeI = 2 而不是 whichElementI= 10 ,insertBeforeI=2。
所以我使用了像 +whichElementI, +insertBeforeI 这样的一元加运算符来解决这个问题。
谢谢