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

2 Answers

0 votes
// Function that flattens a 2D array, sorts it, removes duplicates,
// and returns a new sorted array with unique values
function flattenSortUnique(array2d: number[][]): number[] {

    // 1. Flatten the 2D array into a 1D array (manual flatten for TS targets < ES2019)
    let flat: number[] = [];
    for (const row of array2d) {
        flat = flat.concat(row);
    }

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

    // 3. Remove duplicates using a Set
    const unique: number[] = [...new Set(flat)];

    return unique;
}

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

let arr: number[] = flattenSortUnique(arr2d);

// Print results (replacing process.stdout.write)
arr.forEach((n: number): void => {
    console.log(n + "\t");
});



/*
run

0   
1   
2   
3   
5   
6   
7   
8   
9   

*/

 



answered 3 hours ago by avibootz
0 votes
// Function that flattens a 2D array, sorts it, and removes duplicates,
// and returns a new sorted array with unique values
function flattenSortUnique(array2d: number[][]): number[] {

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

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

    // 3. Remove duplicates using a Set
    const unique: number[] = [...new Set(flat)];

    return unique;
}

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

let arr: number[] = flattenSortUnique(arr2d);

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



/*
run

0	1	2	3	5	6	7	8	9

*/

 



answered 3 hours ago by avibootz

Related questions

...