У меня есть:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
Я хочу сделать что-то вроде:
array.remove("B");
но нет функции удаления. Как мне этого добиться?
javascript
arrays
Роландо
источник
источник
.indexOf()
и.splice()
должно помочь. Или, может быть, альтернативно.filter()
.Ответы:
На самом деле я обновляю эту ветку более свежим однострочным решением:
Идея состоит в том, чтобы фильтровать массив, выбирая все элементы, отличные от элемента, который вы хотите удалить.
Примечание: удалит все вхождения.
РЕДАКТИРОВАТЬ:
Если вы хотите удалить только первое появление:
источник
Прокрутите список в обратном порядке и используйте
.splice
метод.Обратный порядок важен, когда необходимо удалить все вхождения поискового запроса. В противном случае счетчик увеличится, и вы пропустите элементы.
Когда нужно удалить только первое вхождение, также будет работать следующее:
источник
0
не происходит автоматически быстрее, как, скажем, в C. Если вы кешируете лимит, конечно, что усложнит ситуацию, если вы продолжите идти после первого совпадения (но не если вы остановитесь на нем).Список One Liners
Решим эту проблему для этого массива:
1. Удалите только первый: Используйте Если вы уверены, что элемент существует
2. Удалите только последнее: используйте, если вы уверены, что элемент существует
3. Удалите все вхождения:
источник
DEMO
Вам нужно найти местоположение того, что вы ищете, а
.indexOf()
затем удалить его с помощью.splice()
Это позаботится обо всех происшествиях.
источник
.indexOf()
вы можете добавить это в свой файл javascript.Uncaught ReferenceError: array is not defined
. Что случилось?.indexOf()
одним преимуществом . Если вы передадитеfound
в качестве второго аргумента.indexOf()
вызов внутри цикла while , элементы в массиве, которые уже были проверены и оказались не равными, не проверяются снова:found = arr.indexOf(what, found);
Просто
источник
-1
если ничего не будет найдено, и упс, splice удалит 1 элемент из конца массиваПростое решение (ES6)
Если у вас нет повторяющегося элемента
Онлайн-демонстрация (скрипка)
источник
Вы должны написать собственное удаление. Вы можете перебрать массив, получить индекс элемента, который хотите удалить, и использовать
splice
для его удаления.В качестве альтернативы вы можете создать новый массив, перебрать текущий массив и, если текущий объект не соответствует тому, что вы хотите удалить, поместить его в новый массив.
источник
использовать:
Это удаляет один элемент из массива, начиная с индекса 2 (третий элемент)
источник
array.splice(2,1)
который удаляет 1 элемент с индексом 2 из массива. проверьте https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice для получения более подробной информацииили вы можете использовать:
ИзмененныйArray будет содержать без значения 'B'
источник
использовать array.splice
Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
источник
array
иsplice
должна быть точкой.