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