如何在javascript中重新排列数组

时间:2019-02-25 12:42:46

标签: javascript arrays

我希望数组在最后一个和第一个之间切换位置。输出将是8-1 但是当我尝试这样做时,第一个索引是不确定的,第二个仍然是1

var arr1 = [1, 2, 3, 4, 5, 6, 7, 8];

for (var i = 0; i <= arr1.length / 2; i++) {
  var tmp = arr1[i];
  arr1[i] = arr1[arr1.length - i];
  arr1[arr1.length - i] = tmp;
};

console.log(arr1);

有人可以帮助我了解原因吗?

1 个答案:

答案 0 :(得分:3)

#Redirect HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我们减去1是因为当i为0时,for (var i =0; i<= arr1.length/2;i++){ var tmp = arr1[i]; arr1[i] = arr1 [arr1.length-i-1] ; arr1 [arr1.length-i-1] = tmp ; }; 是数组长度,它已经不在数组末尾。

我也不认为arr1.length-i也不一定正确,4和5不会互换(或者可能会互换两次)。我尝试了一下,它起作用了:i<=arr1.length/2。同样有效:i<= arr1.length/2-1。同时对偶数和奇数数组长度进行测试,似乎都不错。第二个可能更有意义。