var arr = [1,2,3,5,6];
Удалить первый элемент
Я хочу удалить первый элемент массива, чтобы он стал:
var arr = [2,3,5,6];
Удалить второй элемент
Чтобы расширить этот вопрос, что если я захочу удалить второй элемент массива, чтобы он стал:
var arr = [1,3,5,6];
javascript
arrays
user198729
источник
источник
slice(start, end)
не 'how_many_to_remove'splice
неslice
я думаю.Ответы:
Для более гибкого решения используйте
splice()
функцию. Это позволяет вам удалить любой элемент в массиве на основе значения индекса:источник
arr.splice(1,1)
для второго элемента.splice()
болееshift()
потому , что его более гибким. Я могу захотеть сделать что-то другое в будущем, и не всегда я хочу удалить только один элемент или даже первый элемент.shift()
идеально подходит для вашей ситуации.shift()
удаляет первый элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.источник
shift()
чтобы ,splice(..., ...)
поскольку он гораздо более явным, прямой.shift
быстрее, если вы не объединяете большие списки jsperf.com/splice-vs-shift3 и jsperf.com/splice-vs-shift2Array.prototype.shift
Метод удаляет первый элемент из массива и возвращает его. Он изменяет исходный массив.источник
не разрушителен, сращивание и сдвиг изменят ваш исходный массив
источник
Написал небольшую статью о вставке и удалении элементов в произвольных позициях в массивах Javascript.
Вот небольшой фрагмент, чтобы удалить элемент из любой позиции. Это расширяет класс Array в Javascript и добавляет метод remove (index).
Итак, чтобы удалить первый элемент в вашем примере, вызовите arr.remove ():
Чтобы удалить второй элемент,
Вот небольшая статья с методами вставки и удаления для класса Array.
По сути, это ничем не отличается от других ответов, использующих сплайсинг, но имя не
splice
является интуитивно понятным, и, если у вас есть такой вызов во всем приложении, это только затрудняет чтение кода.источник
Может быть, что-то вроде этого:
источник
Другие ответы велики, я просто хотел бы добавить альтернативное решение с
ES6
функцией массива:filter
.filter()
создает новый массив с элементами, которые подпадают под данный критерий из существующего массива.Таким образом, вы можете легко использовать его для удаления элементов, которые не соответствуют критериям. Преимущества этой функции в том, что вы можете использовать ее для сложного массива, а не только для строки и числа.
Удалить первый элемент :
Удалить второй элемент :
Удалить нечетный элемент :
Удалить товары, которых нет в наличии
источник
Вы можете использовать функцию ES6 Destructuring Assignment с оператором отдыха. Запятая указывает, где вы хотите удалить элемент и оператор остатка (... arr), чтобы получить остальные элементы массива.
источник
Array.splice()
имеет интересное свойство, которое нельзя использовать для удаления первого элемента. Итак, нам нужно прибегнуть кисточник
Решение Typescript, которое не изменяет исходный массив
источник
Есть несколько способов удалить элемент из массива. Позвольте мне указать наиболее часто используемые варианты ниже. Я пишу этот ответ, потому что я не смог найти правильную причину того, что использовать из всех этих опций. Ответ на вопрос - вариант 3 ( Splice () ).
1) SHIFT () - удалить первый элемент из исходного массива и вернуть первый элемент
См. Ссылку для Array.prototype.shift () . Используйте это, только если вы хотите удалить первый элемент, и только если вы в порядке с изменением исходного массива.
2) SLICE () - возвращает копию массива, разделенного начальным индексом и конечным индексом
Смотрите ссылку на Array.prototype.slice () . Вы не можете удалить определенный элемент из этой опции. Вы можете взять только часть существующего массива и получить непрерывную часть массива. Это как вырезать массив из указанных вами индексов. Исходный массив не затрагивается.
3) SPLICE () - изменить содержимое массива, удалив или заменив элементы по определенным индексам.
См. Ссылку на Array.prototype.splice () . Метод splice () изменяет содержимое массива, удаляя или заменяя существующие элементы и / или добавляя новые элементы на месте. Возвращает обновленный массив. Исходный массив обновляется.
источник
Вы также можете сделать это с помощью Reduce:
источник