Linq有一个方便的运算符方法Take()
,可以在实现IEnumerable
的任何内容中返回给定数量的元素。 jQuery中有没有类似于使用数组的东西?
答案 0 :(得分:139)
答案 1 :(得分:107)
(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"
答案 2 :(得分:21)
如果你问如何截断(通过从末尾删除元素来修改数组),那么使用splice:
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]
请记住splice修改,切片访问。作为第一个arg的负数表示从数组末尾开始的索引。
答案 3 :(得分:8)
将.length属性设置为较低的值。
官方文件: Array.prototype.length
答案 4 :(得分:5)
答案 5 :(得分:2)
如果要有选择地从数组中提取元素,可以使用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(", "));