// 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
*/