So, Basically what I want is to get unique data from a 2d array where I can pass multiple column values which I have stored in an array. Like I want to get unique based on column 1 and 2 so, I can pass the column value like an array [0, 1] to the function and based on the column array it should return unique value.
I have tried something like this:
function sortFunction(a, b) {
if (a[0] === b[0]) { // 0 for column one
return 0;
}
else {
return (a[0] < b[0]) ? -1 : 1;
}
}
function getUniqueData_(arr) {
arr = arr.sort(sortFunction)
let prevEl;
const newArr = arr.reduce((prevArr, currentVal) => {
const idx = prevArr.findIndex(val => val[0] === currentVal[0]);
if (idx === -1) {
if (prevEl && prevEl[0] !== currentVal[0]) {
prevArr.push(currentVal);
}
} else {
prevArr.splice(idx, 1);
}
prevEl = currentVal;
return prevArr;
}, [])
console.log(newArr);
return newArr;
}
Instead of passing column value manually I want to pass it dynamically and multiple columns at the same time which I have stored it in array like [0,1] for column 1 and 2.