Tengo una lista de elementos creados a través ng-repeat . También tengo el botón Eliminar. Al hacer clic en el botón Eliminar, se elimina el último elemento de la matriz uno por uno. Plunker
Pero quiero eliminar elementos uno por uno a partir del primer elemento. ¿Cómo puedo hacer eso? Usé esto para eliminar elementos de la lista:
$scope.index = 1; $scope.remove = function(item) { var index = $scope.cards.indexOf(item); $scope.cards.splice(index, 1); }¿Hay alguna manera de que pueda quitar de la parte superior?
La forma más fácil es usar shift() . Si tiene una matriz, la función de shift desplaza todo a la izquierda.
var arr = [1, 2, 3, 4]; var theRemovedElement = arr.shift(); // theRemovedElement == 1 console.log(arr); // [2, 3, 4]Simplemente use arr.slice(startingIndex, endingIndex) .
Si no especifica el endingIndex , devuelve todos los elementos a partir del índice proporcionado.
En su caso arr=arr.slice(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