Linq ma wygodną metodę operatora, Take()która zwraca określoną liczbę elementów we wszystkim, co implementuje IEnumerable. Czy jest coś podobnego w jQuery do pracy z tablicami?
Albo inaczej: jak obciąć tablicę w JavaScript?
Linq ma wygodną metodę operatora, Take()która zwraca określoną liczbę elementów we wszystkim, co implementuje IEnumerable. Czy jest coś podobnego w jQuery do pracy z tablicami?
Albo inaczej: jak obciąć tablicę w JavaScript?
Odpowiedzi:
Jest metoda plastrów
array.slice(0, 4);
Zwróci pierwsze cztery elementy.
Nie zapomnij przypisać go z powrotem do swojej zmiennej, jeśli chcesz odrzucić inne wartości.
Uwaga: to jest zwykły javascript, nie ma potrzeby używania jquery.
endNIE jest uwzględniony, to @SimonKeep ma rację, patrz MDN developer.mozilla.org/en-US/docs/JavaScript/Reference/…
(2 lata później ...) Jeśli naprawdę chcesz skrócić tablicę, możesz również użyć lengthatrybutu:
var stooges = ["Moe", "Larry", "Shemp", "Curly", "Joe"];
stooges.length = 3; // now stooges is ["Moe", "Larry", "Shemp"]
Uwaga: jeśli przypiszesz długość, która jest większa niż bieżąca długość, zostaną wprowadzone niezdefiniowane elementy tablicy, jak pokazano poniżej.
var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = 5;
alert(typeof stooges[4]); // alerts "undefined"
EDYTOWAĆ:
Jak wspomniano poniżej @twhitehead, można uniknąć dodawania niezdefiniowanych elementów, wykonując następujące czynności:
var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = Math.min(stooges.length, 5);
alert(stooges.length)// alerts "3"
Arrayzamiast tworzyć nowe Array.
Jeśli pytasz, jak obciąć (zmodyfikować tablicę, usuwając elementy z końca), użyj splice :
var a1 = [2,4,6,8];
var a2 = a1.splice(-2,2); // a1=[2,4], a2=[6,8]
Jeśli pytasz, jak pobrać podzbiór tablicy bez modyfikowania oryginału, użyj plasterka .
var a1 = [2,4,6,8];
var a2 = a1.slice(-2); // a1=[2,4,6,8], a2=[6,8]
Pamiętaj tylko o modyfikacjach łączenia, dostępach do wycinków. Liczby ujemne jako pierwszy argument wskazują indeks od końca tablicy.
Ustaw właściwość .length na niższą wartość.
Oficjalna dokumentacja: Array.prototype.length
Jeśli chcesz selektywnie wyciągać elementy z tablicy, możesz użyć metody jQuery.grep .
(z dokumentacji jQuery)
var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
$("div").text(arr.join(", "));
arr = jQuery.grep(arr, function(n, i){
return (n != 5 && i > 4);
});
$("p").text(arr.join(", "));
arr = jQuery.grep(arr, function (a) { return a != 9; });
$("span").text(arr.join(", "));