1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| function isInLast(smallArr, bigArr) { const smallStr = smallArr.toString(); const bigStr = bigArr.toString();
const reg = new RegExp(smallStr + "$"); if (!reg.test(bigStr)) return -1;
return bigArr.length - smallArr.length; }
function isInLast2(smallArr, bigArr) { smallArr.reverse(); bigArr.reverse();
for (let i = 0; i < smallArr.length; i++) { if (smallArr[i] != bigArr[i]) return -1; }
smallArr.reverse(); bigArr.reverse(); return bigArr.length - smallArr.length; }
function isInLast3(smallArr, bigArr) { const diff = bigArr.length - smallArr.length; for (let i = 0; i < smallArr.length; i++) { if (smallArr[i] != bigArr[diff + i]) return -1; }
return diff ; }
var a = [1, 2, 3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1,3, 1, 4, 1, 2, 3]; var b = [1, 2, 3];
console.log("isInLast", isInLast(b, a)); console.log("isInLast2", isInLast2(b, a)); console.log("isInLast3", isInLast3(b, a));
var testNum = 1000000; console.time('test-isInLast'); for (let i = 0; i < testNum; i++) { isInLast(b, a); } console.timeEnd('test-isInLast'); console.time('test-isInLast2'); for (let i = 0; i < testNum; i++) { isInLast2(b, a); } console.timeEnd('test-isInLast2'); console.time('test-isInLast3'); for (let i = 0; i < testNum; i++) { isInLast2(b, a); } console.timeEnd('test-isInLast3');
|