Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เรียงตามดัชนีของอาร์เรย์ใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุดังต่อไปนี้ -

const arr = [
   {
      'name' : 'd',
      'index' : 3
   },
   {
      'name' : 'c',
      'index' : 2
   },
   {
      'name' : 'a',
      'index' : 0
   },
   {
      'name' : 'b',
      'index' : 1
   }
];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว

ฟังก์ชันควรจัดเรียงอาร์เรย์นี้ในลำดับที่เพิ่มขึ้นตามคุณสมบัติดัชนีของวัตถุ

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

ดังนั้น สำหรับอาร์เรย์ด้านบน ผลลัพธ์สุดท้ายควรมีลักษณะดังนี้ −

const output = ["a", "b", "c", "d"];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [
   {
      'name' : 'd',
      'index' : 3
   },
   {
      'name' : 'c',
      'index' : 2
   },
   {
      'name' : 'a',
      'index' : 0
   },
   {
      'name' : 'b',
      'index' : 1
   }
];
const sortAndMap = (arr = []) => {
   const copy = arr.slice();
   const sorter = (a, b) => {
      return a['index'] - b['index'];
   };
   copy.sort(sorter);
   const res = copy.map(({name, index}) => {
      return name;
   });
   return res;
};
console.log(sortAndMap(arr));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[ 'a', 'b', 'c', 'd' ]