var arr_ = [1,2,3,4];
var oldPlace = 0;
var newPlace = 2;
Чтобы массив принял вид: [2,1,3,4];
То есть мы берем элемент под индексом 0, вытаскиваем его из массива и вставляем в указанный индекс 2 этого же массива. Вставляем перед указанным индексом.
Попробуйте так:
const arr = [1,2,3,4];
const swapArray = function(arr, oldPlace, newPlace) {
// Проверим выход за пределы массива
if((Math.min(oldPlace, newPlace) < 0) || (Math.max(oldPlace, newPlace) >= arr.length)) {
console.error('Out of range')
return null;
}
const item = arr.splice(oldPlace, 1);
arr.splice((newPlace > 0)? newPlace-1: 0, 0, item[0])
return arr;
}
console.dir(swapArray(arr, 0, 2));
console.dir(swapArray(arr, 2, 0));
Обратите внимание, функция изменяет исходный массив! Можно сделать "безопасную" функцию:
const arr = [1,2,3,4];
const safeSwapArray = function(inputArr, oldPlace, newPlace) {
const arr = inputArr.slice(); // Копируем массив
// Проверим выход за пределы массива
if((Math.min(oldPlace, newPlace) < 0) || (Math.max(oldPlace, newPlace) >= arr.length)) {
console.error('Out of range')
return null;
}
const item = arr.splice(oldPlace, 1);
arr.splice((newPlace > 0)? newPlace-1: 0, 0, item[0])
return arr;
}
console.dir(safeSwapArray(arr, 0, 2));
console.dir(arr);
var arr_ = [1,2,3,4];
var oldPlace = 0;
var newPlace = 2;
var t = arr_.splice(oldPlace,1);
//после того как удалите элемент из массива, у него изменится длина
arr_.splice(newPlace-1,0,t[0]);
console.log(arr_)
function replc(oldPlace,newPlace,arr) {
if(oldPlace === arr.length-2 && newPlace === 0) return arr;
return arr.splice(newPlace-1,0,arr.splice(oldPlace,1)[0]);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Интересуют примеры реализации сворачивания-разворачивания коробки по её развёртке (CSS, Canvas, SVG), буду очень признателен
Являюсь новичком в деле JS-разработкиОпыт написания работоспособных программ был
Доброго времени суток! Подскажите, плиз, как проще всего наложить текст поверх анимированного gif и отправить его по почте с сервера?