У Linq є зручний метод оператора, покликаний Take()повернути задану кількість елементів у будь-що, що реалізується IEnumerable. Чи є щось подібне в jQuery для роботи з масивами?
Або запитують інакше: як я можу врізати масив у Javascript?
У Linq є зручний метод оператора, покликаний Take()повернути задану кількість елементів у будь-що, що реалізується IEnumerable. Чи є щось подібне в jQuery для роботи з масивами?
Або запитують інакше: як я можу врізати масив у Javascript?
Відповіді:
Існує метод зрізів
array.slice(0, 4);
Поверне перші чотири елементи.
Не забувайте присвоювати його назад своїй змінній, якщо ви хочете відкинути інші значення.
Примітка. Це просто звичайний javascript, не потрібно в jquery.
endНЕ включено, тоді @SimonKeep має рацію, див. MDN developer.mozilla.org/en-US/docs/JavaScript/Reference/…
(2 роки потому ...) Якщо ви справді хочете обрізати масив, ви також можете використовувати lengthатрибут:
var stooges = ["Moe", "Larry", "Shemp", "Curly", "Joe"];
stooges.length = 3; // now stooges is ["Moe", "Larry", "Shemp"]
Примітка: якщо привласнити довжину , яка більше , ніж поточна довжина, невизначені елементи масиву введені, як показано нижче.
var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = 5;
alert(typeof stooges[4]); // alerts "undefined"
Редагувати:
Як зазначено нижче @twhitehead, додавання невизначених елементів можна уникнути, зробивши це:
var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = Math.min(stooges.length, 5);
alert(stooges.length)// alerts "3"
Arrayзамість створення нового Array.
Якщо ви запитуєте, як обрізати (змінити масив, видаливши елементи з кінця), тоді використовуйте зрощення :
var a1 = [2,4,6,8];
var a2 = a1.splice(-2,2); // a1=[2,4], a2=[6,8]
Якщо ви запитуєте, як отримати підмножину масиву без зміни оригіналу, тоді використовуйте фрагмент .
var a1 = [2,4,6,8];
var a2 = a1.slice(-2); // a1=[2,4,6,8], a2=[6,8]
Просто запам'ятайте модифікації з’єднання, доступ до фрагментів. Негативні числа в якості першого аргументу вказують на індекс від кінця масиву.
Встановіть властивість .length на менше значення.
Офіційна документація: Array.prototype.length
Якщо ви хочете вибірково витягувати елементи з масиву, ви можете скористатися методом jQuery.grep .
(від документів 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(", "));