var arr = [1,2,3,5,6];
Я хочу удалить 1-й элемент массива так, чтобы он стал:
var arr = [2,3,5,6];
Чтобы расширить этот вопрос, что, если я хочу удалить второй элемент массива так, чтобы он стал:
var arr = [1,3,5,6];
var arr = [1,2,3,5,6];
Я хочу удалить 1-й элемент массива так, чтобы он стал:
var arr = [2,3,5,6];
Чтобы расширить этот вопрос, что, если я хочу удалить второй элемент массива так, чтобы он стал:
var arr = [1,3,5,6];
Для более гибкого решения используйте функцию splice()
. Он позволяет удалить любой элемент в массиве на основе значения индекса:
var indexToRemove = 0;
var numberToRemove = 1;
arr.splice(indexToRemove, numberToRemove);
shift()
идеально подходит для вашей ситуации. shift()
удаляет первый элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.
array = [1, 2, 3, 4, 5];
array.shift(); // 1
array // [2, 3, 4, 5]
Метод Array.prototype.shift
удаляет первый элемент из массива и возвращает его. Он изменяет исходный массив.
var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]
arr.slice(begin[,end])
не разрушает, сплайсинг и сдвиг изменят ваш исходный массив
Написал небольшую статью о вставке и удалении элементов в произвольных положениях в массивах 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
не является интуитивным, и если у вас есть этот вызов по всему вашему приложению, он просто делает код более трудным для чтения.
Возможно, что-то вроде этого:
arr=arr.slice(1);
Если вы хотите удалить один или несколько элементов массива, это зависит от его содержимого и/или его позиции.
Вы можете использовать функцию массива 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]
Array.splice()
имеет интересное свойство, которое нельзя использовать для удаления первого элемента. Итак, нам нужно прибегнуть к
function removeAnElement( array, index ) {
index--;
if ( index === -1 ) {
return array.shift();
} else {
return array.splice( index, 1 );
}
}