Перемещение элемента массива в начало

1283
08 февраля 2018, 18:43

Доброго времени суток, подвернулась такая задача переместить элемент массива в начало. Вроде сделал, но может есть более красивый способ переместить элемент в начало?

var arr = [0, 1, 2, 3, 4, 5]; 
console.log(arr); 
var removed = arr.splice(3, 1); 
arr.unshift(removed[0]); 
console.log(arr);

Answer 1

Подойдет если элементов будет больше чем 1

var arr = [0, 1, 2, 3, 4, 5] 
arr.unshift(...arr.splice(3,1)); 
console.log(arr);

Answer 2

Можно отсортировать массив, указав что нужное значение должно быть первее остальных.

var arr = [0, 1, 2, 3, 4, 5]; 
var value = 3; 
 
arr.sort(function(x,y){  
  return x == value ? -1 : y == value ? 1 : 0;  
}); 
 
console.log(arr);

Можно вырезать из масива нужны элемент и засунуть его в началу использованием 2ух splice'ов

var arr = [0, 1, 2, 3, 4, 5]; 
var index = 3; 
 
arr.splice(0, 0, arr.splice(index, 1)[0]); 
 
console.log(arr);

Answer 3

var a = [0, 1, 2, 3, 4, 5]; 
console.log(a); 
var b = [a[3]].concat(a.slice(0, 3), a.slice(4)) 
console.log(b);
.as-console-wrapper.as-console-wrapper { max-height: 100vh }

READ ALSO
Условное объявление функции

Условное объявление функции

В первой строчке не пойму зачем используется "+", подскажите пожалуйста

212
Работа с изображением с помощью javascript [требует правки]

Работа с изображением с помощью javascript [требует правки]

На экране задано изображениеНаписать сценарий, позволяющий изменять размеры рисунка, его границу (данные вводятся пользователем)

224