Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

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

สมมติว่าเรามีอาร์เรย์ของอ็อบเจ็กต์ดังนี้:

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

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

ดังนั้น สำหรับอาร์เรย์ข้างต้น ผลลัพธ์สุดท้ายควรเป็นดังนี้:

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' ]