คำนำ
การเรียงลำดับอาร์เรย์เป็นข้อกำหนดที่พบบ่อยมากโดยเฉพาะในแบ็กเอนด์ แน่นอนว่าส่วนหน้ามีข้อกำหนดนี้
แน่นอนว่ามีวิธีการสำเร็จรูปสำหรับการเรียงลำดับอาร์เรย์ มันเป็นวิธีการเรียงลำดับ ()
มาดูกันก่อน
คำตอบมาตรฐานวิธีการจัดเรียง
var arr = [45,98,67,57,85,6,58,83,48,18]; console.log ('อาร์เรย์ดั้งเดิม'); console.log (arr); console.log ('เรียงลำดับจากการเรียงลำดับจากขนาดเล็ก เล็ก '); console.log (arr.sort (ฟังก์ชั่น (a, b) {return ba})); console.log (' วิธีการเรียงลำดับจากขนาดใหญ่ถึงขนาดเล็ก '); console.log (arr.sort (ฟังก์ชั่น (a, b) {return ba}));ผลการดำเนินการมีดังนี้:
ควรสังเกตที่นี่ว่าเรียงลำดับเรียงลำดับตัวอักษรตามค่าเริ่มต้น ดังนั้นเมื่อเราจัดเรียงหมายเลขเราจำเป็นต้องใช้ฟังก์ชันที่กำหนดเอง
ตามรหัสข้างต้น
ฟังก์ชั่น (a, b) {return ab}
นี่คือฟังก์ชั่นการเรียงลำดับจากขนาดเล็กถึงขนาดใหญ่ มันดูง่ายมาก แต่ฉันไม่เข้าใจดังนั้นฉันจะใช้การเรียงลำดับตามความคิดของฉัน ~
คำตอบของฉันสำหรับวิธีการจัดเรียง
var arr = [45,98,67,57,85,6,58,83,48,18]; console.log ('อาร์เรย์ดั้งเดิม'); console.log ('arr'); console.log ('สำหรับวิธีการจัดเรียงจากขนาดเล็กถึงขนาดใหญ่'); console.log (' small '); console.log (' arrsortmaxtomin (arr)); // ค้นหาค่าที่เล็กที่สุดในฟังก์ชันอาเรย์ arrminnum (arr) {var minnum = อินฟินิตี้, ดัชนี = -1; สำหรับ (var i = 0; i <arr.length; i ++) {ถ้า (arr [i] <minnum) {"minnum": minnum, "index": index};} // ส่งคืนผลลัพธ์ของการเรียงลำดับจากขนาดเล็กถึงใหญ่ในฟังก์ชั่นอาร์เรย์ arrsortmintomax (arr) {var arrnew = []; var arrold = arr.concat (); สำหรับ (var i = 0; i <arr.length; {arrnew.push (arrminnum (arrods) .minnum); arrold.splice (arrminnum (arrold) .index, 1)}; return (arrnew);} // ค้นหาค่าที่ใหญ่ที่สุดในฟังก์ชันอาร์เรย์ arrmaxnum (arr) {var maxnum = (arr [i]> maxnum) {maxnum = arr [i]; index = i;}}; return {"maxnum": maxnum, "ดัชนี": ดัชนี};} // ส่งคืนผลลัพธ์ของการเรียงลำดับจากขนาดใหญ่ถึงขนาดเล็ก arr.length;ผลการดำเนินการแสดงในรูปด้านล่าง
จุดความรู้ในวิธีการของฉัน
1. เมื่อฟังก์ชั่นจำเป็นต้องส่งคืนข้อมูลหลายชิ้นมันจะสะดวกกว่าในการใช้รูปแบบวัตถุ JSON ตัวอย่างเช่น return {"minnum": minnum, "index": index} ด้านบน;
2. หากคุณใช้เมธอด var arrold = arr เพื่อคัดลอกอาร์เรย์และทำงานบน ARROLD มันจะส่งผลกระทบต่ออาร์เรย์ดั้งเดิมของ arr เนื่องจากจาวาสคริปต์แบ่งออกเป็นประเภทดั้งเดิมและประเภทอ้างอิง (คล้ายกับ Java และ C#) อาร์เรย์เป็นประเภทอ้างอิง arrold ได้รับการอ้างอิงดังนั้นการปรับเปลี่ยนเพื่อ arrold จะส่งผลกระทบต่อ arr
วิธีการคัดลอกอาร์เรย์ (i) var arrold = arr.concat (); หลักการ: ฟังก์ชั่น concat () เป็นฟังก์ชั่นที่ใช้ในการประกบหลายอาร์เรย์ วิธีการเขียนนี้เทียบเท่ากับการประกบกัน นั่นคือการคัดลอก
วิธีการคัดลอกอาร์เรย์ (2) var arrold = arr.slice (0) หลักการ: ฟังก์ชั่น Slice () เป็นฟังก์ชันที่สกัดกั้นอาร์เรย์ การตั้งค่าค่าเป็น 0 คือการสกัดกั้นพวกเขาทั้งหมดซึ่งเทียบเท่ากับการคัดลอก
3. วิธีการประกบ () ใช้เพื่อแทรกลบหรือแทนที่องค์ประกอบของอาร์เรย์ นี่คือคุณสมบัติที่ใช้ตำแหน่งที่ถูกลบในอาร์เรย์
4. ความแตกต่างระหว่างวิธีการของฉันและวิธีการเรียงลำดับ
วิธีการของฉันไม่ได้แก้ไขอาร์เรย์ดั้งเดิมในขณะที่การเรียงลำดับเป็นการปรับเปลี่ยนตามอาร์เรย์ดั้งเดิม
วิธีการของฉันส่งคืนอาร์เรย์ใหม่และอาร์เรย์ดั้งเดิมไม่ได้หายไปหรือเปลี่ยนแปลง (ดูเหมือนว่าจะเหมือนกับประโยคข้างต้น ... )
5. การเรียงลำดับเป็นจุดความรู้พื้นฐานและสำคัญมากในการเขียนโปรแกรม การเรียงลำดับค่อนข้างต่ำเมื่อดำเนินการข้อมูลจำนวนมาก แน่นอนว่าประสิทธิภาพของวิธีการของฉันก็ต่ำมาก
บทความนี้ทำซ้ำที่: http://blog.csdn.net/fungleo/article/details/51555590
ข้างต้นเป็นเนื้อหาทั้งหมดของวิธีการเรียงลำดับอาร์เรย์การเรียงลำดับ JavaScript และวิธีการเรียงลำดับการใช้ตนเองที่ตัวแก้ไขแนะนำให้คุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉัน บรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin Network