En kjekk måte å lage unike array i Javascript.
Node.js: Unike array
Array med simple verdier
Ok, dette kan være ganske rett fram. Dersom du har array med kun simpleverdier så kan du gjøre det på denne elegante måten:
function ensureUniqArray(arr) {
if (Array.isArray(arr)) {
return [...new Set(arr)];
}
return arr;
}
Slik tester du funksjonen:
assert.equals(arrayUniq([1,1,2,2,2,3]), [1, 2, 3]);
Array med komplekse verdier
Men dersom du har et array med objekter så vil metoden over ikke fungere. Du trenger da endel mer kode.
Jeg har derfor laget en ny npm-modul som løser dette på en fin måte.
Slik installerer du modulen:
$ npm i fast-type-check --save
Inkluder module på toppen av scriptet ditt:
const tc = require('fast-type-check');
Eksempel på et unikt array av array:
const arr = [[1, 2], [1, 2], [3, 4, 5], [1, 2]];
console.log(tc.ensureUniqArray(arr));
// [[1, 2], [3, 4, 5]]
Det virker også på array av objekter:
const arr = [{ foo: 1, bar: 2 }, { gomle: 3, foobar: 4 }, { foo: 1, bar: 2 }, { foo: 1, bar: 2 }];
console.log(tc.ensureUniqArray(arr));
// [{ foo: 1, bar: 2 }, { gomle: 3, foobar: 4 }]