Есть массив. Решить, двумя способами. В первом исходный массив должен быть изменен, во втором - не должен быть изменен
Нужно из массива ['Саша', 'Петя', 'Оксана'] сделать массив ['Оксанa', 'Олег', 'Саша'].
Есть первое решение, не могу понять как решить вторым способом! Помогите пожалуйста!
let arr = ['Саша', 'Петя', 'Оксана'];
const firstWay = arr.map((item, index, ar) => {
if(item === 'Петя') item = 'Олег';
return item;
}).reverse();
console.log(firstWay);
Ответы (1 шт):
Автор решения: Михаил Камахин
→ Ссылка
Реализовал вам два решения:
- функцию
mutableRevert- переворачивает и мутирует массив - функцию
noMutableRevert- переворачивает и не мутирует массив
Без использования встроенных функций JS
const arr = ['Саша', 'Петя', 'Оксана', 'Вася', 'Миша'];
function mutableRevert(mutableArr) {
const condition = (length, i) => length % 2 === 0 ? i < length / 2 : i < arr.length / 2 - 1;
for (let i = 0; condition(mutableArr.length, i); i++) {
const mirrorIndex = mutableArr.length - 1 - i;
[mutableArr[i], mutableArr[mirrorIndex]] = [mutableArr[mirrorIndex], mutableArr[i]];
}
return arr;
}
function noMutableRevert(mutableArr) {
const newArr = [];
for (let i = 0; i < mutableArr.length; i++) {
newArr[i] = mutableArr[mutableArr.length - 1 - i];
}
return newArr;
}
console.log(noMutableRevert(arr));
console.log(arr);