如何轻松截断与JavaScript的数组?

Linq有一个方便的运算符方法Take()来返回任何实现了IEnumerable的元素的给定数量的元素。 jQuery中有什么类似的数组?

有一个切片的方法

 array.slice(0, 4); 

将返回前四个元素。

如果您想放弃其他值,请不要忘记将其分配回您的variables。

注意:这只是正常的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" 

如果你问如何截断(通过从最后删除元素来修改数组),然后使用拼接 :

 var a1 = [2,4,6,8]; var a2 = a1.splice(-2,2); // a1=[2,4], a2=[6,8] 

如果您要求如何在不修改原始数据的情况下检索数组的子集,请使用slice 。

 var a1 = [2,4,6,8]; var a2 = a1.slice(-2); // a1=[2,4,6,8], a2=[6,8] 

只要记住拼接修改,切片访问。 作为第一个参数的负数表示数组末尾的索引。

将.length属性设置为较低的值。

官方文档: Array.prototype.length

如果要同时获取元素以及将其从数组中移除,请使用拼接 。

如果要保留数组中的元素,请使用slice

如果你想有select地从数组中提取元素,你可以使用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(", "));