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

เรียงสตริงในอาร์เรย์ตามตัวเลขในสตริงด้วย JavaScript

เรามีอาร์เรย์ของสตริงที่แต่ละตัวมีตัวเลขหนึ่งหรือมากกว่าหนึ่งตัวแบบนี้:

const arr = ['di5aster', 'ca1amity', 'cod3', 'ho2me3', 'ca11ing'];

เราต้องเขียนฟังก์ชันจัดเรียงที่จัดเรียงอาร์เรย์นี้ในลำดับเพิ่มขึ้นของตัวเลขที่อยู่ในสตริง ลำดับที่ถูกต้องจะเป็น:

const output = ['ca1amity', 'cod3', 'di5aster', 'ca11ing', 'ho2me3'];

มาเขียนโค้ดสำหรับปัญหานี้กัน:

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

const arr = ['di5aster', 'ca1amity', 'cod3', 'ho2me3', 'ca11ing'];

const filterNumber = str => {
  return +str
    .split("")
    .filter(el => el.charCodeAt() >= 48 && el.charCodeAt() <= 57)
    .join("");
};

const sorter = (a, b) => {
  return filterNumber(a) - filterNumber(b);
};

arr.sort(sorter);
console.log(arr);

ผลลัพธ์

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

['ca1amity', 'cod3', 'di5aster', 'ca11ing', 'ho2me3']