ในโลกของการเขียนโปรแกรม สถานการณ์ที่พบบ่อยคือความจำเป็นในการจัดเรียงอาร์เรย์ของอ็อบเจ็กต์ สิ่งนี้อาจดูน่ากลัวในตอนแรก โดยเฉพาะอย่างยิ่งในภาษาที่พิมพ์แบบคงที่ เช่น ประเภท. อย่างไรก็ตาม ด้วยแนวทางที่ถูกต้อง งานนี้อาจกลายเป็นงานที่ค่อนข้างจัดการได้ การดำเนินการนี้นอกเหนือไปจากการเรียงลำดับตามตัวอักษรหรือตัวเลข เราเจาะลึกลงไปในการเรียงลำดับตามคุณสมบัติเฉพาะหรือคุณสมบัติหลายอย่างของอาร์เรย์อ็อบเจ็กต์
วิธีแก้ปัญหาโดยทั่วไปเกี่ยวข้องกับการใช้เมธอด sort() ของอาร์เรย์ร่วมกับระบบประเภทของ TypeScript ต่อไปนี้เป็นภาพรวมคร่าวๆ เกี่ยวกับวิธีการจัดเรียงอาร์เรย์ของออบเจ็กต์ตามคุณสมบัติ 'ชื่อ'
let arr = [{name: 'Joe'}, {name: 'Bob'}, {name: 'Alice'}]; arr.sort((a, b) => a.name.localeCompare(b.name));
ในตัวอย่างข้างต้น เราใช้เมธอด Array.prototype.sort ที่สร้างขึ้นของ JavaScript ร่วมกับฟังก์ชันการเปรียบเทียบตามสถานที่
เราดำเนินการแจกแจงโค้ดนี้โดยละเอียดยิ่งขึ้น โดยเจาะลึกการทำงานภายในของงาน
ทำความเข้าใจกับวิธีการ sort()
วิธีการ sort() ที่มีอยู่ใน JavaScript เป็นเครื่องมือที่ทรงพลังเมื่อพูดถึงการจัดการอาร์เรย์ มันจะเรียงลำดับองค์ประกอบของอาร์เรย์ในตำแหน่งและส่งกลับอาร์เรย์ การเรียงลำดับไม่จำเป็นต้องเสถียรเสมอไป ลำดับการจัดเรียงเริ่มต้นสร้างขึ้นจากการแปลงองค์ประกอบให้เป็นสตริง จากนั้นเปรียบเทียบลำดับของค่าหน่วยโค้ด UTF-16
วิธีการนี้ยอมรับฟังก์ชันตัวเปรียบเทียบซึ่งถูกเรียกใช้ด้วยอาร์กิวเมนต์สองตัว – สององค์ประกอบที่กำลังถูกเปรียบเทียบอยู่ในปัจจุบัน ฟังก์ชันตัวเปรียบเทียบคาดว่าจะส่งคืนตัวเลข หากตัวเลขที่ส่งคืนน้อยกว่า 0 องค์ประกอบแรกจะถูกจัดเรียงให้มีดัชนีต่ำกว่าองค์ประกอบที่สอง ถ้าส่งคืน 0 ลำดับจะไม่เปลี่ยนแปลง หากส่งคืนค่าที่มากกว่า 0 องค์ประกอบที่สองจะถูกจัดเรียงให้มีดัชนีต่ำกว่าองค์ประกอบแรก
TypeScript และบทบาทของมัน
TypeScript ซึ่งเป็นชุดคำสั่งทางวากยสัมพันธ์ของ JavaScript เพิ่มการพิมพ์แบบคงที่ให้กับภาษา
ไม่เพียงแต่จะทำให้โค้ดของคุณง่ายต่อการติดตามและเข้าใจเท่านั้น แต่ยังปลดล็อกฟีเจอร์ที่มีประสิทธิภาพ เช่น การเติมข้อความอัตโนมัติและเครื่องมือการปรับโครงสร้างใหม่ ซึ่งสามารถเร่งกระบวนการพัฒนาของคุณได้อย่างมาก
ฟังก์ชั่นหลักอย่างหนึ่งของ TypeScript ในสถานการณ์การเรียงลำดับของเราคือความสามารถในการระบุและบังคับใช้ประเภทข้อมูลและโครงสร้างที่ถูกจัดเรียง TypeScript มีความสามารถในการกำหนดอินเทอร์เฟซสำหรับโครงสร้างวัตถุ ซึ่งสามารถนำมาใช้เมื่อกำหนดวัตถุที่จะเรียงลำดับ
- ทั้ง JavaScript และ Typescript ใช้ฟังก์ชันพื้นฐานเดียวกันสำหรับการ sort() ซึ่งทำให้วิธีการเรียงลำดับสอดคล้องกันในทั้งสองอย่าง
- อินเทอร์เฟซ TypeScript สามารถช่วยให้แน่ใจว่าออบเจ็กต์ในอาร์เรย์ของคุณมีคุณสมบัติที่สอดคล้องกัน ทำให้เรียงลำดับได้ง่ายขึ้น
โดยพื้นฐานแล้ว การจัดเรียงอาร์เรย์ของอ็อบเจ็กต์ไม่ใช่งานที่จะทำให้คุณกังวลในฐานะโปรแกรมเมอร์ TypeScript ด้วยพลังของเมธอด sort() ของอาร์เรย์ และระบบประเภทของ TypeScript การจัดการงานดังกล่าวจะง่ายขึ้นอย่างมากและเกิดข้อผิดพลาดน้อยลง
ไลบรารีเพื่อจัดเรียงอาร์เรย์ของวัตถุ
แม้ว่าโซลูชันดั้งเดิมใน TypeScript และ JavaScript จะเพียงพอสำหรับความต้องการส่วนใหญ่ แต่ก็มีไลบรารีมากมายที่จะช่วยคุณหากคุณกำลังเผชิญกับงานที่ซับซ้อนเป็นพิเศษ ไลบรารีเหล่านี้มีฟังก์ชันเพิ่มเติม เช่น การเรียงลำดับตามหลายคีย์ ลำดับการจัดเรียงแบบกำหนดเอง และอื่นๆ อีกมากมาย
ห้องสมุดที่โดดเด่นบางแห่ง ได้แก่ :
– lodash: ไลบรารียูทิลิตี้ยอดนิยมที่มีเครื่องมือเพื่อช่วยในการจัดการและการรวมกันของอาร์เรย์ วัตถุ และฟังก์ชัน
– Ramda: ไลบรารี่ที่ใช้งานได้จริงสำหรับโปรแกรมเมอร์ JavaScript
สิ่งสำคัญคือการทำความเข้าใจแนวคิด จากนั้นเลือกเครื่องมือที่เหมาะกับความต้องการของคุณมากที่สุด การเปรียบเทียบและการเรียงลำดับออบเจ็กต์อาร์เรย์เป็นส่วนสำคัญของแอปพลิเคชันซอฟต์แวร์จำนวนมาก และเป็นเครื่องมือสำคัญในแถบนักพัฒนา