@pelevesque/find-indexes-of-duplicates

Finds indexes of duplicates in an array of elements.

Usage no npm install needed!

<script type="module">
  import pelevesqueFindIndexesOfDuplicates from 'https://cdn.skypack.dev/@pelevesque/find-indexes-of-duplicates';
</script>

README

Build Status Coverage Status JavaScript Style Guide

find-indexes-of-duplicates

Finds indexes of duplicates in an array of elements.

find-indexes-of-duplicates uses lodash.isequal to make comparisons, so any type supported by lodash.isequal is supported by find-indexes-of-duplicates.

Node Repository

https://www.npmjs.com/package/@pelevesque/find-indexes-of-duplicates

Installation

npm install @pelevesque/find-indexes-of-duplicates

Tests

Standard Style & Unit Tests

npm test

Unit Tests & Coverage

npm run cover

Usage

Requiring

const findIndexesOfDuplicates = require('@pelevesque/find-indexes-of-duplicates')

One Set of Duplicates

const elements = [
  'd131dd02c5e6eec4', // a
  '55ad340609f4b302',
  'd131dd02c5e6eec4', // a
  'd131dd02c5e6eec4', // a
  'd8823e3156348f5b'
]
const result = findIndexesOfDuplicates(elements)
// result === [[0, 2, 3]]

Many Sets of Duplicates

const elements = [
  'd131dd02c5e6eec4', // a
  '55ad340609f4b302',
  'd8823e3156348f5b', // b
  'd131dd02c5e6eec4', // a
  'd8823e3156348f5b', // b
  '551111111114b302', // c
  '551111111114b302'  // c
]
const result = findIndexesOfDuplicates(elements)
// result === [[0, 3], [2, 4], [5, 6]]

Using the stopAtFirstSet Flag

// When using the stopAtFirstSet flag, only the first set is returned.
// Note: In this case, an array is returned instead of an array of arrays.
const elements = [
  'd131dd02c5e6eec4', // a
  '55ad340609f4b302',
  'd8823e3156348f5b', // b
  'd131dd02c5e6eec4', // a
  'd8823e3156348f5b', // b
  '551111111114b302', // c
  '551111111114b302'  // c
]
const stopAtFirstSet = true
const result = findIndexesOfDuplicates(elements, stopAtFirstSet)
// result === [0, 3]