สมมติว่าเรามีชุดสตริงที่มีเส้นทางรูปภาพและหมายเลขลำดับต่อท้ายกัน พวกมันดูเหมือนนี้:
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']