我希望数组在最后一个和第一个之间切换位置。输出将是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);
有人可以帮助我了解原因吗?
答案 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
。同时对偶数和奇数数组长度进行测试,似乎都不错。第二个可能更有意义。