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

เรียงลำดับอาร์เรย์และจัดกลุ่มตัวเลขซ้ำเป็นซับอาร์เรย์แยกต่างหากใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอินพุตเดียว อาร์เรย์อินพุทอาจมีรายการซ้ำ

ฟังก์ชันควรเรียงลำดับอาร์เรย์และจัดกลุ่มตัวเลขที่เหมือนกัน (ซ้ำ) เข้าไปในซับอาร์เรย์ของตัวเอง

เช่น:

ถ้าอาร์เรย์อินพุทคือ:

const arr = [5, 7, 5, 7, 8, 9, 1, 1];

ผลลัพธ์ควรเป็น:

const output = [
  [1, 1],
  [5, 5],
  [7, 7],
  [8],
  [9]
];

ตัวอย่าง

โค้ดสำหรับนี้จะเป็นดังนี้:

const arr = [5, 7, 5, 7, 8, 9, 1, 1];

const sortAndGroup = (arr = []) => {
  let result = [];
  let groupArray;
  arr.sort((a, b) => a - b);
  for (let i = 0; i < arr.length; i++) {
    if (arr[i - 1] !== arr[i]) {
      groupArray = [];
      result.push(groupArray);
    };
    groupArray.push(arr[i]);
  };
  return result;
};

console.log(sortAndGroup(arr));

ผลลัพธ์

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

[ [ 1, 1 ], [ 5, 5 ], [ 7, 7 ], [ 8 ], [ 9 ] ]