JSFiddle - React, Tailwind, and code Playground

by Graham Fairweather

JavaScript

function getUniqueAndduplicatesWithIndicies(array) {
    return array.reduce(function (acc, curr, index, arr) {
        if (acc.duplicates.values.indexOf(curr) !== -1 || arr.lastIndexOf(curr) !== index) {
            acc.duplicates.values.push(curr);
            acc.duplicates.indicies.push(index);
        } else {
            acc.unique.values.push(curr);
            acc.unique.indicies.push(index);
        }

        return acc;
    }, {
        unique: {
            values: [],
            indicies: []
        },
        duplicates: {
            values: [],
            indicies: []
        }
    });
}

var setOfValues = [1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 10, 10, 9, 10, 8, 4, 11];

console.log(JSON.stringify(getUniqueAndduplicatesWithIndicies(setOfValues)));