แก้ไขแล้ว: จัดเรียงอาร์เรย์ของวัตถุ

ในโลกของการเขียนโปรแกรม สถานการณ์ที่พบบ่อยคือความจำเป็นในการจัดเรียงอาร์เรย์ของอ็อบเจ็กต์ สิ่งนี้อาจดูน่ากลัวในตอนแรก โดยเฉพาะอย่างยิ่งในภาษาที่พิมพ์แบบคงที่ เช่น ประเภท. อย่างไรก็ตาม ด้วยแนวทางที่ถูกต้อง งานนี้อาจกลายเป็นงานที่ค่อนข้างจัดการได้ การดำเนินการนี้นอกเหนือไปจากการเรียงลำดับตามตัวอักษรหรือตัวเลข เราเจาะลึกลงไปในการเรียงลำดับตามคุณสมบัติเฉพาะหรือคุณสมบัติหลายอย่างของอาร์เรย์อ็อบเจ็กต์

วิธีแก้ปัญหาโดยทั่วไปเกี่ยวข้องกับการใช้เมธอด 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

สิ่งสำคัญคือการทำความเข้าใจแนวคิด จากนั้นเลือกเครื่องมือที่เหมาะกับความต้องการของคุณมากที่สุด การเปรียบเทียบและการเรียงลำดับออบเจ็กต์อาร์เรย์เป็นส่วนสำคัญของแอปพลิเคชันซอฟต์แวร์จำนวนมาก และเป็นเครื่องมือสำคัญในแถบนักพัฒนา

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น