เรามีอาร์เรย์ของสตริงซึ่งแต่ละอันประกอบด้วยตัวเลขอย่างน้อยหนึ่งตัวเช่นนี้ −
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' ]