Я пытаюсь поменять 2 элементов в массиве функциональным способом в JavaScript (ES6)своп два элемента массива в функционально
let arr = [1,2,3,4,5,6]
let result = swap(arr, 1, 2) // input: array, first element, second element
// result=[1,3,2,4,5,6]
Единственный способ, которым я мог думать о:
const swap = (arr, a, b) =>
arr.map((curr,i) => i === a ? arr[b] : curr)
.map((curr,i) => i === b ? arr[a] : curr)
Но этот код работает дважды над массивом и не читается вообще. Любые предложения по хорошему чистому функциональному коду?
Спасибо.
Возможный дубликат [Перестановка двух пункты i n a javascript array] (http://stackoverflow.com/questions/4011629/swapping-two-items-in-a-javascript-array) –
Ожидается результат нового массива или свопа элементов в исходном массиве? – guest271314