ในบทความก่อนหน้านี้ฉันได้แนะนำวิธีการเรียงลำดับอาร์เรย์การเรียงลำดับ JavaScript และวิธีการเรียงลำดับที่เน้นตัวเองให้คุณและใช้วิธีการของฉันเองเพื่อใช้การเรียงลำดับของอาร์เรย์ตัวเลข
แน่นอนในการใช้งานจริงมันสะดวกกว่าสำหรับฉันที่จะใช้วิธีการเรียงลำดับ อย่างไรก็ตามในโพสต์บล็อกก่อนหน้าของฉันฉันใช้การเรียงลำดับตัวเลขเท่านั้นในขณะที่วิธี SROT สามารถเรียงลำดับตัวอักษรตามค่าเริ่มต้น! รหัสของฉันสามารถเรียงลำดับตัวเลขเท่านั้นและยังดูอ่อนแอ
ดังนั้นฉันต้องเพิ่มวิธีการเรียงลำดับที่สามารถเรียงลำดับตัวอักษรหรือแม้แต่ภาษาจีน
ใช้รหัส
$ (function () {var arr = ["Jack", "Book", "Fung", 76, "Love", "Mark", "China", "China", "Phone", "Andy Lau"]; console.log ( ขนาดใหญ่ '); console.log (' arrsortmintomax (arr)); console.log ('สำหรับวิธีการเรียงลำดับจากขนาดใหญ่ถึงขนาดเล็ก'); console.log ('arrsortmaxtomin (arr)); console.log (' array ดั้งเดิม '); console.log (' arr); (var i = 0; i <arr.length; i ++) {ถ้า (typeof (arr [i]) == "string") {ถ้า (arr [i] .charcodeat () <minnum) {minnum = arr [i] .charcodeat (); = arr [i] index = i;}}}; return {"minnum": minvul, "index": index};} function arrsortmintomax (arr) {var arrnew = []; var arrold = arr.concat (); {arrnew.push (arrminnum (arrodrold) .minnum); arrold.splice (arrminnum (arrold) .index, 1)}; return (arrnew);} arrmaxnum (arr) {var maxnum = -infinity, index = -1, maxvul = "for i =; (typeof (arr [i]) == "string") {ถ้า (arr [i] .charcodeat ()> maxnum) {maxnum = arr [i] .charcodeat (); maxvul = arr [i]; ดัชนี = i;}}} {if (arr [i]> maxnum) i;}}}; return {"maxnum": maxvul, "index": index};} function arrsortmaxtomin (arr) {var arrnew = []; var arrold = arr.slice (0); สำหรับ (var i = 0; i <arr.length; i ++) {arrnew.push (arrmaxnum (arrods) .maxnum); arrold.splice (arrmaxnum (arrold) .index, 1);}; return (arrnew);}ภาพหน้าจอที่กำลังทำงานมีดังนี้:
การจัดเรียงหลักการ
หากเป็นตัวเลขจะเปรียบเทียบโดยตรงกับตัวเลข
หากเป็นสตริงมันจะถูกแปลงเป็น unicode encoding โดยใช้ charcodeat () สำหรับการเรียงลำดับ
Unicode เป็นจำนวนเต็มระหว่าง 0 - 65535
คำแนะนำอื่น ๆ
ตามตรรกะการเรียงลำดับปกติมันควรจะ: ตัวเลขมีขนาดเล็กกว่าตัวอักษรทั้งหมดตัวอักษรมีขนาดเล็กกว่าภาษาจีนทั้งหมดและภาษาจีนควรจัดเรียงตามตัวอักษรตัวแรกของพินอินของตัวละครตัวแรก
รหัสของฉันไม่ได้ถูกนำไปใช้ยกเว้นว่าตัวอักษรมีขนาดเล็กกว่าภาษาจีนทั้งหมด
ควรรับรู้ตรรกะค้นหาอักขระจีนเป็นตัวเลขเปรียบเทียบตัวเลขกับอาร์เรย์เปรียบเทียบตัวอักษรกับตัวอักษรเปรียบเทียบภาษาจีนกับภาษาจีนแล้ว
มันอาจจะลำบากกว่านี้เล็กน้อยในการรับชื่อย่อของจดหมายฉบับแรกเป็นภาษาจีน
ตัวละครจีนสามารถเปรียบเทียบได้โดยตรง
ดังที่แสดงในภาพด้านบนมันสมเหตุสมผลสำหรับจางเฟยที่จะเป็นเจ้านาย ในที่สุด JavaScript ก็ทำให้จางเฟยมีชื่อเสียงในอีกพันปีต่อมา เขาควรจะเป็นเจ้านายในตอนนั้น! -