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

การจัดเรียงตัวอักษรภายในสตริงตามลำดับพจนานุกรมใน JavaScript

มีสตริงคั่นด้วยจุลภาค (เช่น 'JAY,ROB,APPLE,AAKO') ต้องสร้างคำใหม่โดยนำตัวอักษรแรกของแต่ละคำมาเปรียบเทียบ ตัวอักษรที่น้อยกว่า (ตามลำดับพจนานุกรม) จะถูกนำมาต่อกันจนครบทุกตัวอักษร

ตัวอย่าง: 'JAY,ROB,APPLE,AAKO' → 'AAAJAKOPPLEROBY'

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

const str = `JAY,ROB,APPLE,AAKO`;

const specialSort = (str = '') => {
  let len = str.replace(/,/g, "").length;
  const sorter = (str, b) => {
    if (str === "" || str === null) return 1;
    if (b === "" || b === null) return -1;
    if (str === b) return 0;
    return str < b ? -1 : 1;
  };
  let res = "";
  let sorted = str.split(",").sort(sorter);
  while (res.length < len) {
    res += sorted[0][0];
    sorted[0] = sorted[0].slice(1);
    sorted = sorted.sort(sorter);
  }
  return res;
};

console.log(specialSort(str));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

AAAJAKOPPLEROBY