Linq มีวิธีดำเนินการที่เรียกว่าสะดวกที่จะกลับจำนวนที่กำหนดขององค์ประกอบในสิ่งที่ดำเนินการTake()
IEnumerable
มีอะไรที่คล้ายกันใน jQuery สำหรับการทำงานกับอาร์เรย์หรือไม่?
หรือถามแตกต่างกัน: ฉันจะตัดอาร์เรย์ใน Javascript ได้อย่างไร
Linq มีวิธีดำเนินการที่เรียกว่าสะดวกที่จะกลับจำนวนที่กำหนดขององค์ประกอบในสิ่งที่ดำเนินการTake()
IEnumerable
มีอะไรที่คล้ายกันใน jQuery สำหรับการทำงานกับอาร์เรย์หรือไม่?
หรือถามแตกต่างกัน: ฉันจะตัดอาร์เรย์ใน Javascript ได้อย่างไร
คำตอบ:
มีวิธีการฝาน
array.slice(0, 4);
จะคืนค่าสี่องค์ประกอบแรก
อย่าลืมกำหนดกลับให้กับตัวแปรของคุณหากคุณต้องการทิ้งค่าอื่น ๆ
หมายเหตุ: นี่เป็นเพียงจาวาสคริปต์ปกติไม่จำเป็นต้องใช้ 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]
เพียงจำไว้ว่า Splice ปรับเปลี่ยนการเข้าถึงชิ้นส่วน ตัวเลขติดลบเป็นอาร์กิวเมนต์แรกบ่งชี้ดัชนีจากท้ายอาร์เรย์
ตั้งค่าคุณสมบัติ. 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(", "));