[英]How to easily truncate an array with JavaScript?
Linq 有一個方便的運算符方法,稱為Take()
,可以在任何實現IEnumerable
的東西中返回給定數量的元素。 jQuery 中是否有類似的東西用於處理數組?
或者,換一種方式問:如何在 Javascript 中截斷數組?
有一個切片方法
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] arr = arr.slice(0, 4); console.log(arr);
將返回前四個元素。
如果您想丟棄其他值,請不要忘記將其分配回您的變量。
注意:這只是普通的 javascript,不需要 jquery。
(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"
將 .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(", "));
如果您使用的是 take(3),我將假設該數組最初被定義為參數 3
const result = new Array(3)
// result = [undefined , undefined , undefined]
如果您的迭代器僅返回 2 個值,或者在 take(3) 命令之后過濾了這些值並刪除了 1 個值,則數組看起來像
//result = [1 , 1 , undefined]
所以要截斷你可以使用的空元素數組
result.filter((value) => value !== undefined);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.