Ответ 1
Самый простой способ - использовать shift()
. Если у вас есть массив, функция shift
смещает все влево.
var arr = [1, 2, 3, 4];
var theRemovedElement = arr.shift(); // theRemovedElement == 1
console.log(arr); // [2, 3, 4]
У меня есть список предметов, созданных с помощью ng-repeat
. У меня также есть кнопка Удалить. Нажатие кнопки удаления удаляет последний элемент массива один за другим. Plunker
Но я хочу удалить элементы один за другим, начиная с первого элемента. Как я могу это сделать? Я использовал это для удаления списка
$scope.index = 1;
$scope.remove = function(item) {
var index = $scope.cards.indexOf(item);
$scope.cards.splice(index, 1);
}
Есть ли способ, которым я могу удалить сверху?
Самый простой способ - использовать shift()
. Если у вас есть массив, функция shift
смещает все влево.
var arr = [1, 2, 3, 4];
var theRemovedElement = arr.shift(); // theRemovedElement == 1
console.log(arr); // [2, 3, 4]
Просто используйте arr.slice(startingIndex, endingIndex)
.
Если вы не указали endingIndex
, он возвращает все элементы, начиная с предоставленного индекса.
В вашем случае arr=arr.slice(1)
.
$scope.remove = function(item) {
$scope.cards.splice(0, 1);
}
Внесены изменения в.. теперь его уберут сверху
const a = [1, 2, 3]; // -> [2, 3]
// Mutable solutions: update array 'a', 'c' will contain the removed item
const c = a.shift(); // prefered mutable way
const [c] = a.splice(0, 1);
// Immutable solutions: create new array 'b' and leave array 'a' untouched
const b = a.slice(1); // prefered immutable way
const b = a.filter((_, i) => i > 0);
const [c, ...b] = a; // c: the removed item
Существует функция, называемая shift()
.
Он удалит первый элемент вашего массива.
Есть некоторая хорошая документация и примеры.