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

สร้างอาร์เรย์ที่เรียงลำดับจากค่าที่มีหมายเลขลำดับใน JavaScript

สมมติว่าเรามีชุดสตริงที่มีเส้นทางรูปภาพและหมายเลขลำดับต่อท้ายกัน พวกมันดูเหมือนนี้:

const images = [
  'photo1.jpg,0',
  'photo2.jpg,2',
  'photo3.jpg,1'
];

ดังนั้นลำดับที่ถูกต้องควรเป็น - photo1, photo3, photo2 สิ่งที่เราต้องทำคือประมวลผลให้เป็นอาร์เรย์ที่เรียงถูกต้องด้วยแค่ค่า path ดังนั้นสุดท้ายเราต้องการ:

const orderedImages = [
  'photo1.jpg',
  'photo3.jpg',
  'photo2.jpg'
]

มาเขียนโค้ดเพื่อจัดเรียงอาร์เรย์รูปภาพนี้ตามลำดับที่ถูกต้องกัน:

ตัวอย่างโค้ด

const images = [
  'photo1.jpg,0',
  'photo2.jpg,2',
  'photo3.jpg,1'
];

const sorter = (a, b) => {
  return parseInt(a.split(",")[1]) - parseInt(b.split(",")[1]);
};

const sortArray = arr => {
  return arr
    .slice()
    .sort(sorter)
    .map(el => {
      return el.split(",")[0];
    });
};

console.log(sortArray(images));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

['photo1.jpg', 'photo3.jpg', 'photo2.jpg']