試圖遞歸交換數組中的對,並設法迭代獲取它。 我將如何遞歸實現交換部分?我想我的大部分都是正確的!如果有奇數,最後一個保持不變。如果可能的話,我不想有助手交換功能。遞歸交換數組中的對
pairSwap = function(arr) {
var newArray = []
for (var i = 0; i < arr.length; i += 2) {
var current = arr[i];
var next = arr[i + 1]
if (next !== undefined) {
newArray.push(next)
}
if (current !== undefined) {
newArray.push(current)
};
};
return newArray;
}
console.log(pairSwap([1, 2, 3, 4, 5]))
pairSwapRecursive = function(arr) {
if (arr.length < 2) {
return arr;
} else {
//swap the first and second:
return (swap ?) + pairSwapRecursive(arr.slice(2))
}
}
console.log(pairSwapRecursive([1, 2, 3, 4, 5])) //should return [2, 1, 4, 3, 5]
//something similar in Java:
// public String swapPairs(String s) {
// if (s.length() < 2)
// return s;
// else
// return swap(s.charAt(0), s.charAt(1)) + swapPairs(s.substring(2));
// }
不需要輔助函數的原因是什麼? –
@torazaburo純遞歸:)這是一個學習練習。 – devdropper87