1 | import id from './_id';
|
2 | import cmp from './_cmp';
|
3 | /**
|
4 | * Finds first index of a subsequence.
|
5 | * @param x an array
|
6 | * @param y subsequence?
|
7 | * @param fc compare function (a, b)
|
8 | * @param fm map function (v, i, x)
|
9 | */
|
10 | function searchSubsequence(x, y, fc = null, fm = null) {
|
11 | var fc = fc || cmp, fm = fm || id;
|
12 | var y1 = [...y].map(fm), Y = y1.length;
|
13 | var a = -1, i = -1, j = 0;
|
14 | for (var u of x) {
|
15 | var u1 = fm(u, ++i, x);
|
16 | if (fc(u1, y1[j]) !== 0)
|
17 | continue;
|
18 | if (a < 0)
|
19 | a = i;
|
20 | if (++j >= Y)
|
21 | return a;
|
22 | }
|
23 | return -1;
|
24 | }
|
25 | export default searchSubsequence;
|
26 | //# sourceMappingURL=searchSubsequence.js.map |
\ | No newline at end of file |