@extra-array/scan-while
Version:
Scans from left, while a test passes.
58 lines (43 loc) • 1.9 kB
Markdown
Scans from left, while a test passes.
[:package:](https://www.npmjs.com/package/@extra-array/scan-while)
[:smiley_cat:](https://github.com/orgs/nodef/packages?repo_name=extra-array)
[:running:](https://npm.runkit.com/@extra-array/scan-while)
[:vhs:](https://asciinema.org/a/339811)
[:moon:](https://www.npmjs.com/package/@extra-array/scan-while.min)
[:scroll:](https://unpkg.com/@extra-array/scan-while/)
[:newspaper:](https://nodef.github.io/extra-array/)
[:blue_book:](https://github.com/nodef/extra-array/wiki/)
> Alternatives: [scanWhile], [scanWhileRight], [scanUntil], [scanUntilRight].<br>
> Similar: [search], [scan], [find].
> This is part of package [extra-array].
[extra-array]: https://www.npmjs.com/package/extra-array
<br>
```javascript
array.scanWhile(x, ft);
// x: an array
// ft: test function (v, i, x)
// → index where test fails
```
```javascript
const array = require("extra-array");
var x = [1, 1, 2, 2, 3, 3, 4, 4];
array.scanWhile(x, v => v % 2 !== 0);
// 2 ^
array.scanWhile(x, v => v % 3 !== 0);
// 4 ^
array.scanWhile(x, v => v % 6 !== 0);
// 8 ^
```
<br>
<br>
## References
- [List-Extra.elemIndex: elm](https://package.elm-lang.org/packages/elm-community/list-extra/7.1.0/List-Extra#elemIndex)
- [iterable-binsearch: @krisselden](https://www.npmjs.com/package/iterable-binsearch)
- [binarysearch: @soldair](https://www.npmjs.com/package/binarysearch)
[scanWhile]: https://github.com/nodef/extra-array/wiki/scanWhile
[scanWhileRight]: https://github.com/nodef/extra-array/wiki/scanWhileRight
[scanUntil]: https://github.com/nodef/extra-array/wiki/scanUntil
[scanUntilRight]: https://github.com/nodef/extra-array/wiki/scanUntilRight
[search]: https://github.com/nodef/extra-array/wiki/search
[scan]: https://github.com/nodef/extra-array/wiki/scan
[find]: https://github.com/nodef/extra-array/wiki/find