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();