1 查找文章中出现频率最高的单词
let article = "This is a test. This test is only a test.";
function findMostWord(article) {
if (!article) return;
let lower = article.trim().toLowerCase();
let text = lower.match(/[a-z]+/g);
article = ' ' + text.join(' ') + ' ';
let visit = [];
let maxNum = 0;
let maxWord = '';
text.forEach(item => {
if (visit.indexOf(item) < 0) {
visit.push(item);
let reg = new RegExp(' ' + item + ' ', 'g');
let res = article.match(reg).length;
if (res > maxNum) {
maxNum = res;
maxWord = item;
}
}
});
return maxWord;
}
console.log(findMostWord(article)); //test
2 实现斐波那契数列
求斐波那契数列的第n个数
- 递归递推公式法
function fibonacci(n) {
if (n == 1) return 1;
if (n == 2) return 1;
return fibonacci(n - 2) + fibonacci(n - 1);
}
console.log(fibonacci(8)); //21
- 非递归数组法
function fibonacci(n) {
let result = [1, 1];
for (let i = 2; i < n; i++) {
result.push(result[i - 1] + result[i - 2]);
}
return result[n - 1];
}
console.log(fibonacci(8)); //21