判断一个字符串是否回文

1
2
3
4
5
6
7
8
function checkpalinddrom(str){
return str === str.split('').reverse().join('');
}
console.log(checkpalinddrom("manam")) //true

var a = "qwet";
console.log(a.split('')); //[ 'q', 'w', 'e', 't' ]
console.log(a.split('').join('')); //qwet

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let arr = [1, 5, 2, 6, 8, 9];
function sortArr(arr){
for(let i = 0; i < arr.length-1; i++){
for(let j = 0; j < arr.length-i-1; j++){
if(arr[j] > arr[j+1]){
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
console.log(sortArr(arr)); //[ 1, 2, 5, 6, 8, 9 ]
冒泡排序算法就是依次比较大小,小的和大的进行位置上的交换 第一个循环是循环的次数,第二个循环是每一轮比较多少。

选择排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let arr = [1, 3, 6, 5, 4, 8, 9 ,7];
function selectSort(arr){
for(let i = 0; i < arr.length; i++){
let min = i;
for(let j = i; j < arr.length; j++){
if(arr[min] > arr[j]){
min = j;
}
}
let temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
return arr;
}
console.log(selectSort(arr)); //[ 1, 3, 4, 5, 6, 7, 8, 9 ]

选择排序是记录下当前排序的值,然后去寻找比他更小值,最后再进行交换。

斐波拉契数列

1
2
3
4
5
6
7
8
function fib(n){
if(n == 1 || n == 2){
return 1;
} else{
return fib(n-1) + fib(n-2);
}
}
console.log(fib(6)) //8

数组的去重

1
2
3
4
5
6
7
8
9
10
11
12
13
let arr = [1, 3, 6, 3, 6, 8, 9 ,6];
function unique(arr){
let hasObject = {};
let data = [];
for(let i = 0; i < arr.length; i++){
if(!hasObject[arr[i]]){
data.push(arr[i]);
hasObject[arr[i]] = true;
}
}
return data;
}
console.log(unique(arr)); //[ 1, 3, 6, 8, 9 ]

利用了对象的key值的唯一性。