UNPKG

681 BJavaScriptView Raw
1import id from './_id';
2import 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 */
10function 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}
25export default searchSubsequence;
26//# sourceMappingURL=searchSubsequence.js.map
\No newline at end of file