JSFiddle - React, Tailwind, and code Playground
by dpren
JavaScript
/*
* uniqify
*
* Returns a copy of an array with duplicate references removed, but identical values are preserved.
*/
function uniqify(originalArr) {
let arr = [...originalArr];
let newArr = [];
let length = arr.length - 1;
let i = -1;
while (i++ < length) {
let val = arr.shift();
if (newArr.includes(val) === false) {
newArr.push(val);
}
}
return newArr;
}
let dup = {a: 1, _checked: true};
let array = [dup, dup, {b: 2}, dup, {b: 2}];
console.log('uniqified:', uniqify(array));
console.log('original is not mutated:', array);