How to flatten a 2D array into a sorted one-dimensional array with unique values in JavaScript

2 Answers

0 votes
const arr2d = [ 
    [ 5, 6, 1, 1, 1 ], 
    [ 3, 8, 0, 2, 2 ],
    [ 9, 2, 7, 3, 3 ] 
];
 
let arr = arr2d.flat();
arr.sort(); 

arr = [...new Set(arr)];
 
arr.forEach(n => {
    process.stdout.write(n + "\t");
});
 
  
   
/*
run
  
0	1	2	3	5	6	7	8	9		
   
*/

 



answered Aug 16, 2024 by avibootz
0 votes
// Function that flattens a 2D array, sorts it, removes duplicates,
// and returns a new sorted array with unique values
function flattenSortUnique(array2d) {

    // 1. Flatten the 2D array into a 1D array
    let flat = array2d.flat();

    // 2. Sort the flattened array
    flat.sort((a, b) => a - b);

    // 3. Remove duplicates using a Set
    return [...new Set(flat)];
}

const arr2d = [
    [5, 6, 1, 1, 1],
    [3, 8, 0, 2, 2],
    [9, 2, 7, 3, 3]
];

let arr = flattenSortUnique(arr2d);

// Print results
arr.forEach(n => {
    process.stdout.write(n + "\t");
});



/*
run

0   1   2   3   5   6   7   8   9

*/

 



answered 5 hours ago by avibootz

Related questions

...