如何轻松截断与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(", "));