JavaScript: individuare l'elemento univoco in un array

JavaScript: individuare l'elemento univoco in un array

In questo articolo vedremo come individuare l'unico elemento univoco in un array JavaScript.

Si tratta inizialmente di eliminare i valori duplicati dall'array e quindi effettuare il conteggio delle ricorrenze di tali valori.


'use strict';

const findOccurences = (num, items) => {
    const found = items.filter(i => { return i === num; });
    return found.length;
};

const singleNumber = nums => {
    if(!Array.isArray(nums) || nums.length === 0) {
        return -1;
    }
    if(nums.length === 1) {
        return nums[0];
    }
    const uniqueNums = [...new Set(nums)];
    const numsMap = uniqueNums.map(n => { return [n, findOccurences(n, nums)]});
    const result = numsMap.filter(r => { return r[1] === 1; });
    return result[0][0];
};

const main = () => {
    const tests = [[2, 2, 1], [4, 1, 2, 1, 2], [1]];
    for(const test of tests) {
        console.log(singleNumber(test));
    }
};

main();    
Torna su