Как удалить элемент из массива в JavaScript?

var arr = [1,2,3,5,6];

Я хочу удалить 1-й элемент массива так, чтобы он стал:

var arr = [2,3,5,6];

Чтобы расширить этот вопрос, что, если я хочу удалить второй элемент массива так, чтобы он стал:

var arr = [1,3,5,6];

Ответ 1

Для более гибкого решения используйте функцию splice(). Он позволяет удалить любой элемент в массиве на основе значения индекса:

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);

Ответ 2

shift() идеально подходит для вашей ситуации. shift() удаляет первый элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.

array = [1, 2, 3, 4, 5];

array.shift(); // 1

array // [2, 3, 4, 5]

Ответ 3

Метод Array.prototype.shift удаляет первый элемент из массива и возвращает его. Он изменяет исходный массив.

var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]

Ответ 4

arr.slice(begin[,end])

не разрушает, сплайсинг и сдвиг изменят ваш исходный массив

Ответ 5

Написал небольшую статью о вставке и удалении элементов в произвольных положениях в массивах Javascript.

Вот небольшой фрагмент, чтобы удалить элемент из любой позиции. Это расширяет класс Array в Javascript и добавляет метод remove (index).

// Remove element at the given index
Array.prototype.remove = function(index) {
    this.splice(index, 1);
}

Итак, чтобы удалить первый элемент в вашем примере, вызовите arr.remove():

var arr = [1,2,3,5,6];
arr.remove(0);

Чтобы удалить второй элемент,

arr.remove(1);

Здесь крошечная статья со способами ввода и удаления для класса Array.

По существу это ничем не отличается от других ответов с использованием сплайсинга, но имя splice не является интуитивным, и если у вас есть этот вызов по всему вашему приложению, он просто делает код более трудным для чтения.

Ответ 6

Возможно, что-то вроде этого:

arr=arr.slice(1);

Ответ 7

Если вы хотите удалить один или несколько элементов массива, это зависит от его содержимого и/или его позиции.

Вы можете использовать функцию массива js filter.

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter.

Удалить первый элемент:

// Not very useful but it works
function removeFirst(element, index) {
  return index > 0;
}
var arr = [1,2,3,5,6].filter(removeFirst); // [2,3,4,5,6]

Удалить второй элемент:

function removeSecond(element, index) {
  return index != 1;
}
var arr = [1,2,3,5,6].filter(removeSecond); // [1,3,4,5,6]

Удалить нечетный элемент:

function removeOdd(element, index) {
  return !(element % 2);
}
var arr = [1,2,3,5,6].filter(removeOdd); [2,4,6]

Ответ 8

Array.splice() имеет интересное свойство, которое нельзя использовать для удаления первого элемента. Итак, нам нужно прибегнуть к

function removeAnElement( array, index ) {
    index--;

    if ( index === -1 ) {
        return array.shift();
    } else {
        return array.splice( index, 1 );
    }
}