1、斐波那契
// 0,1,1,2,3,5,8,13
let fn = function (n) {
if ([0, 1].includes(n)) {
return n
} else {
return fn(n - 1) + fn(n - 2)
}
}
console.log(fn(6))
2、判断字符串中是否含有连续3个数字
let fn = function(str) {
let arr = str.split(''); // 分割为数组
let num = 0;
let outStr = '';
for(let i = 0; i < arr.length; i++) {
if (!isNaN(arr[i])) { // 为数字的情况
num += 1
outStr += arr[i];
if (num === 3) { // 已经有三位数字,直接跳出循环
return outStr;
} else if (num < 3 && i === arr.length - 1) {
return false // 字符串中没有连续的3个数字,返回false
}
} else {
num = 0;
outStr = ''
}
}
}
a = fn('asd23ad726');
console.log(a)
3、简易的数组去重
可以实现基本数据类型的去重(没有尝试Symbol),当你尝试往数组中塞入两个相同的数组或者对象,发现就不可以了,就需要采用另外一种方式
Array.prototype.unity = function() {
let arr = this;
let newArr = [];
arr.forEach((item) => {
if(!newArr.includes(item)) {
newArr.push(item)
}
});
return newArr
}
// 包含number、string、boolean、null、undefined
let arr = [1,3,3,'1','1','hello','hello',false,false,null,null,undefined,undefined];
console.log(arr.unity());
let arr2 = [...new Set(arr)]; // ES6的Set函数也可以
console.log(arr2)