字符串查找和函数操作题目解析
1. 字符串查找
function isContain(a, b){ var aLen = a.length var bLen = b.length for(var i = 0; i < bLen; i++){ if(b[i]===a[0]){ for(var j = 1; j < aLen; j++){ if(i + j >= bLen || a[j] != b[i + j]) { break; } if(j == aLen - 1) { return i } } } } return -1 } console.log(isContain('34', '1234567')); console.log(isContain('35', '1234567')); console.log(isContain('355', '12354355'));
结果:
2
-1
5 //字符串匹配 //循环全文本,找到和需要匹配的字符串第一个字符相匹配i,如果一直找不到直接返回-1 //找到以后,遍历需要匹配的字符串,看后续字符是否一直匹配,如果是,返回上面的i
2. 函数操作,无限乘
function multiply(num) { var res = num; return function inner(nextNum) { if(nextNum == undefined) { return res; } else { res = res * nextNum; return inner; } }; } console.log(multiply(1)()); console.log(multiply(1)(2)(3)()); console.log(multiply(1)(2)(3)(4)());
结果:
1
6
24
//闭包应用 //开始调用multiply,初始化开始值,为了实现链式,需要返回一个函数 //调用返回函数,根据参数判断直接返回结果还是继续返回一个函数并且做乘法运算