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,初始化开始值,为了实现链式,需要返回一个函数
//调用返回函数,根据参数判断直接返回结果还是继续返回一个函数并且做乘法运算