Es gibt viele Fehler in Ihrem Code.
Wenn Sie anfangen, arr.push(arr[arr.length-i]);
zu drücken, erhöht sich die Array-Länge, dadurch erhalten Sie keine Konsistenz in den Daten.
Dies geht in eine Endlosschleife, wie jedes Mal, arr
ist vor seiner Länge.
Es ist besser, eine andere Variable zu verwenden und umzukehren, oder Sie können die integrierte reverse()
-Funktion verwenden. Es ist nichts falsch daran, eine andere Variable zu haben und temporäre Inhalte hinzuzufügen.
Lösungen:
eine temporäre Array:
function reverse(arr) {
var final = [];
for (var i = arr.length - 1; i >= 0; i--) {
final.push(arr[i]);
}
return final;
}
built-in function (Array.prototype.reverse()
) Verwendung:
function reverse(arr) {
return arr.reverse();
}
Mit wenigen temporären Variablen:
a = [5,4,3,2,1];
function reverse(arr) {
var i = 0, j = arr.length - 1;
for (i = 0; i < j; i++, j--) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr;
}
console.log(reverse(a));
sein wird Wissen Sie, was 'arr.push (arr [arr.length-i]);' tut – Tushar
@AlexanderMac Wenn Sie die Frage und sehen Code, Sie müssen diesen Kommentar nicht geben. –
@Alexander Mac Ich möchte umkehren, ohne eine andere Variable zu verwenden, ist das möglich? –