function reverseArray(array) {
var reversed_array = [];
for(var i = 0; i < array.length; i++) {
reversed_array.unshift(array[i]);
}
return reversed_array;
}
function reverseArrayInPlace(array) {
console.log(array); //[1,2,3,4,5]
array = reverseArray(array);
console.log(arguments); //{0: [5, 4, 3, 2, 1]} this is good.
console.log(array); // [5, 4, 3, 2, 1] this is also good.
return array; //should return [5, 4, 3, 2, 1]
}
console.log(reverseArray(["A", "B", "C"])); //["C", "B", "A"]
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue); // [1, 2, 3, 4, 5] *wrong*
ここで問題はarray.reverse()のように、変数(arrayValue)をreverseArrayInPlace()の戻り値でオーバーライドしたいという問題です。両方reverseArrayInPlace()関数が持つreturn文を持っている場合場所での配列の反転なぜそれは機能しませんか?
、ここでは、このソリューションが新しい値で(arrayValue)を交換して動作する理由
function reverseArrayInPlace(array) {
var half = Math.floor(array.length/2);
for(var i = 0; i < half; i++) {
var current = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = current;
}
console.log(array); // [5, 4, 3, 2, 1] this is good.
return array; //should return [5, 4, 3, 2, 1]
}
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue); // [5, 4, 3, 2, 1] *it works!*
が、私は理解していない問題の解決策です同じ値。
誰かが私はかなりプログラミングに新しいです、ありがとう!
多分あなたはカスタム機能のためにこれを必要としますが、jsには逆の配列が組み込まれていますか? console.log([1、2、3、4、5])。逆()) – yezzz