repetition-ranges
Get start/end positions where a given value consecutively appears in the array
import repetitionRanges from 'repetition-ranges';
repetitionRanges(['a', 'b', 'a', 'a', 'b', 'a', 'a', 'a'], 'a');
//=> [{start: 2, end: 3}, {start: 5, end: 7}]
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
array | a | b | a | a | b | a | a | a |
(a appeared) |
○ | ○ | ○ | ○ | ○ | ○ | ||
a consecutively appeared |
○ | ○ | ○ | ○ | ○ |
Installation
npm install repetition-ranges
API
import repetitionRanges from 'repetition-ranges';
repetitionRanges(array, searchValue)
array: Array
searchValue: any type (the value to resolve its repetition ranges)
Return: Array
of objects with start
and end
properties
repetitionRanges([1, 1, 1], 1); //=> [{start: 0, end: 2}]
repetitionRanges([1, 1, '1', 1, 1, Symbol('1')], 1); //=> [{start: 0, end: 1}, {start: 3, end: 4}]
repetitionRanges(['a', 'b'], 'c'); //=> []
repetitionRanges(['a', 'b', 'a'], 'a'); //=> []
repetitionRanges([], 'a']); //=> []
License
ISC License © 2018 Shinnosuke Watanabe