我试图反转此数组的内容,但结果是由于某种原因从数组中的值减去2。
关于为什么会发生这种情况的任何想法?
代码:
# BEGIN ImageResizing
<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# scaling small, medium, large
RewriteRule ^img/small/subdomainfolder/img/uploads/([A-Za-z0-9/_-]+).(jpg|gif|png)$ images.php?max_width=100&imgfile=$1.$2
</ifmodule>
# END ImageResizing
答案 0 :(得分:2)
newArray.push(array.indexOf(i));
推送数组i
中值的索引(如果它在那里),如果没有,则推送-1
。例如,它正在寻找值4
,3
,2
,1
和0
,如果找到它们,则推送索引它发现它们进入新阵列。
要更好地理解这一点,请稍微更改您的功能,然后在调试器中逐步执行:
function reverseArray(array) {
var newArray = [];
for (i = array.length-1; i >= 0; i--) {
var newValue = array.indexOf(i);
newArray.push(newValue); // <=== Put a breakpoint on this line
};
return newArray;
}
然后使用调试器逐步执行该操作,并在指示的行上,每次循环时查看newValue
的值。 (浏览器中内置了强大的调试器。)
您只想要newArray.push(array[i]);
附注:您还想声明i
变量;目前,你正在成为The Horror of Implicit Globals的牺牲品。
附注2:您不能在函数声明之后或在;
循环附加的块之后放置for
。