Scans from left, until a test passes.
[:package:](https://www.npmjs.com/package/@extra-array/scan-until)
[:smiley_cat:](https://github.com/orgs/nodef/packages?repo_name=extra-array)
[:running:](https://npm.runkit.com/@extra-array/scan-until)
[:vhs:](https://asciinema.org/a/339809)
[:moon:](https://www.npmjs.com/package/@extra-array/scan-until.min)
[:scroll:](https://unpkg.com/@extra-array/scan-until/)
[: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.scanUntil(x, ft);
// x:  an array
// ft: test function (v, i, x)
// → index where test passes
```

```javascript
const array = require("extra-array");

var x = [1, 1, 2, 2, 3, 3, 4, 4];
array.scanUntil(x, v => v % 2 === 0);
// 2           ^

array.scanUntil(x, v => v % 3 === 0);
// 4                 ^

array.scanUntil(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
