У меня есть следующий массив.
var arr = [1,0,2];
Я хотел бы удалить последний элемент, т. Е. 2.
Я использовал, arr.slice(-1);
но это не удаляет значение.
javascript
arrays
slice
Притхвирадж Митра
источник
источник
arr.slice(0,-1)
было лучшим решением для меняsplice()
, второй случай:pop()
.Ответы:
Используйте сплайс (индекс, сколько)
источник
[1].splice(-1, 1)
=>[1]
[0,1,2] -> [2]
оставить позади[0,1]
. Если это так, то[arr.pop()]
сработает.array.pop()
изменится изменитьarray
, покаslice(0, -1)
не будет. Поп, конечно, быстрее, но не всегда подходит для всех нужд.Array.prototype.pop () по соглашению JavaScript.
источник
Вы можете сделать это с помощью
.slice()
метода, как:Вот демо:
вместо того, чтобы делать:
Вот демо:
Объяснение: -
Теперь основной синтаксис
Array.prototype.slice()
или краткийslice()
метод:Вот,
begin
параметр равен нулю на основе индекса , при котором извлечение из массива начинается. Итак, скажем, на основе приведенного выше примера, если мы делаем что-то вродеон вернул бы все элементы массива с начала последовательности с позиции 0, и это
[1,0,2]
. Точно так же, если мы делаемон вернется,
[0,2]
поскольку 0 находится здесь в позиции 1 и все после этого. Теперь, в вашем случае вы передали отрицательный индекс, т. Е. В-1
качестве параметра начала, который указывает смещение от конца последовательности. Итак,slice(-1)
в вашем случае извлекает последний элемент массива в последовательности, и это2
( как мы уже видели в приведенной выше демонстрации ).Теперь поговорим о
end
параметре вslice()
синтаксисе метода здесь. Это снова индекс, начинающийся с нуля, на котором заканчивается извлечение из массива. Итак, допустим, у нас есть массив, как: -и мы хотим получить только
2,5,3
элементы в массиве. Теперь позиция2
начала последовательности2
и для последнего элемента3
это4
. Нам нужно закончить извлечение здесь позиции 5, так как нам нужно получить элемент до этой позиции. Итак, мы просто реализуемslice()
метод здесь, какВ вашем случае мы реализовали
-1
в качестве параметра конца, поэтому наш кодВ качестве отрицательного индекса
end
указывает смещение от конца последовательности. Таким образом,slice(0,-1)
извлекается первый элемент через второй-последний элемент в последовательности. Итак, мы получаем желаемый результат. Мы также можем сделать какмы получим тот же результат. Но я использовал
-1
здесь, поскольку его проще реализовать даже для длинного массива, такого какЕсли вы просто хотите удалить последний элемент, вы не хотите сидеть и вычислять позицию последних 9 здесь и тому подобное
arr.slice(0, 22)
. Вы можете просто реализовать логику отрицательного индекса здесь и сделатьНадеюсь, поможет!
источник
arr
а скорее возвращает новый массив, который исключает этот последний элемент. Как сказано в документации Mozilla: «Метод slice () возвращает поверхностную копию части массива в новый объект массива».arr.slice(0, -1)
что это лучший ответ.учиться на примере:
источник
Вы должны были бы сделать это, так
slice
как не изменяет исходный массив.Если вы хотите изменить исходный массив, вы можете использовать
splice
:или
pop
:источник
Я считаю,
.pop()
что это наиболее «правильное» решение, однако иногда оно может не сработать, так как вам нужно использовать массив без последнего элемента прямо там ...В таком случае вы можете использовать следующее, он вернет
[1,2,3]
в то время как
.pop()
вернется4
:что может быть нежелательно ...
Надеюсь, это сэкономит вам время.
источник
Для этого есть функция, объяснение здесь :
источник
Вы можете просто использовать,
arr.pop()
Это удаляет последнюю запись массива.
источник
Просто используйте следующее для вашего случая использования:
Просто записка. Когда вы выполняете
pop()
функцию, даже если строка возвращает извлеченный элемент, создается исходный массив, и извлекаемый элемент удаляется.источник
Вы можете сделать это двумя способами, используя
splice()
:arr.splice(-1,1)
arr.splice(arr.length-1,1)
splice(position_to_start_deleting, how_many_data_to_delete)
принимает два параметра.position_to_start_deleting
: Нулевой индекс, с которого начинается удаление.how_many_data_to_delete
: Из указанного индекса, сколько последовательных данных должно быть удалено.Вы также можете удалить последний элемент, используя
pop()
as, удаляяpop()
последний элемент из некоторого массива.использование
arr.pop()
источник
arr.slice(-1)
вернет копию последнего элемента массива, но оставит исходный массив без изменений.Чтобы удалить последние
n
элементы из массива, используйтеarr.splice(-n)
(обратите внимание на «p» в «соединении»). Возвращаемым значением будет новый массив, содержащий удаленные элементы.Еще проще, для
n == 1
использованияval = arr.pop()
источник
// удаляет последний элемент // нужно проверить, если arr.length> 0
источник
источник
Стоит отметить, что
slice
оба будут возвращать новый массив, тогда как.pop()
и.splice()
будут изменять существующий массив.Если вам нравится обрабатывать коллекции данных с помощью связанного командного стиля, вы действительно захотите придерживаться
slice
чего-то подобного.Например:
Это может потребовать намного больше возни и управления переменами, чтобы сделать то же самое с «pop», так как в отличие от
map
,filter
и т. Д., Вы не получите новый массив обратно.Это то же самое
push
, что добавляет элемент в конец массива. Возможно, вам будет лучше с этим,concat
так как это позволит вам поддерживать поток.источник
splice (index, howmany) - это решение звучит хорошо. Но этот способ будет работать только для положительного индекса массива. Чтобы удалить последние два или три элемента, используйте сам индекс.
Например, сращивание (-2), чтобы удалить два последних элемента. сращивание (-3) для удаления трех последних элементов.
источник
С Lodash вы можете использовать dropRight , если вам не важно знать, какие элементы были удалены:
источник
источник
Решение 2019 ECMA5:
Неразрушающий, универсальный, однострочный и требует только копирования и вставки в конце вашего массива.
источник
I would like to remove the last element
. Это требует деструктивной / мутирующей операции с исходным массивом.скажи, что у тебя есть
var arr = [1,0,2]
arr.splice(-1,1)
вернусь к вам,array [1,0];
покаarr.slice(-1,1)
вернусь к вамarray [2];
источник
Это хороший способ удалить последний элемент:
Деталь соединения следующим образом:
сращивание (startIndex, номер сращивания)
источник
Вывод будет: Array [0,1,2,3,4,5] . Это позволит вам сохранить то же количество элементов массива, что и при вводе нового значения.
источник
Другой подход заключается в фильтрации по индексу:
Примечание:
filter()
создает новый массив, не изменяет существующий.источник
Если вы хотите удалить n элементов из конца массива в javascript, вы можете легко использовать:
источник