Node.js: Unike array

Node.js: Unike array

En kjekk måte å lage unike array i Javascript.
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 }]