我有通过ng-repeat创建的项目列表。我也有删除按钮。 单击删除按钮逐个删除数组的最后一项。砰砰作响
但我想从第一项开始逐项删除。我该怎么做呢?我用它来删除列表项:
$scope.index = 1;
$scope.remove = function(item) {
var index = $scope.cards.indexOf(item);
$scope.cards.splice(index, 1);
}
有什么办法可以从上面去掉吗?
我有通过ng-repeat创建的项目列表。我也有删除按钮。 单击删除按钮逐个删除数组的最后一项。砰砰作响
但我想从第一项开始逐项删除。我该怎么做呢?我用它来删除列表项:
$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]
其他回答
有一个叫做shift()的函数。 它将删除数组的第一个元素。
这里有一些很好的文档和示例。
砰砰作响
$scope.remove = function(item) {
$scope.cards.splice(0, 1);
}
对..进行了更改。现在把它从顶部移开
只使用arr。切片(startingIndex, endingIndex)。
如果您没有指定endingIndex,它将返回从所提供的索引开始的所有项。
在这个例子中,arr=arr.slice(1)。
最简单的方法是使用shift()。如果你有一个数组,shift函数会把所有东西都移到左边。
var arr = [1, 2, 3, 4];
var theRemovedElement = arr.shift(); // theRemovedElement == 1
console.log(arr); // [2, 3, 4]
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