เรามีอาร์เรย์ของตัวเลขที่มีรายการที่เหมือนกัน เราจำเป็นต้องเขียนฟังก์ชันที่รับอาร์เรย์และจัดกลุ่มรายการที่เหมือนกันทั้งหมดไว้ในอาร์เรย์ย่อยเดียวและส่งกลับอาร์เรย์ใหม่ที่เกิดขึ้น
ตัวอย่างเช่น หากอาร์เรย์อินพุตเป็น −
const arr = [234, 65, 65, 2, 2, 234];
// ดังนั้นผลลัพธ์ควรเป็น −
const output = [[234, 234], [65, 65], [2, 2]];
เราจะใช้ Hashmap เพื่อติดตามองค์ประกอบที่เกิดขึ้นแล้วและวนซ้ำผ่าน thearray โดยใช้ for loop
ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [234, 65, 65, 2, 2, 234]; const groupArray = arr => { const map = {}; const group = []; for(let i = 0; i < arr.length; i++){ if(typeof map[arr[i]] === 'number'){ group[map[arr[i]]].push(arr[i]); }else{ //the push method returns the new length of array //and the index of newly pushed element is length-1 map[arr[i]] = group.push([arr[i]])-1; } }; return group; } console.log(groupArray(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ [ 234, 234 ], [ 65, 65 ], [ 2, 2 ] ]