反转数组内容时出现奇怪的错误

时间:2015-08-29 17:38:37

标签: javascript arrays reverse

我试图反转此数组的内容,但结果是由于某种原因从数组中的值减去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

1 个答案:

答案 0 :(得分:2)

newArray.push(array.indexOf(i));推送数组i中值的索引(如果它在那里),如果没有,则推送-1。例如,它正在寻找值43210,如果找到它们,则推送索引它发现它们进入新阵列。

要更好地理解这一点,请稍微更改您的功能,然后在调试器中逐步执行:

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