数组的最大最小值,逻辑运算代替条件判断、判断数值是否存在数组中

5. 找到数组中的最大最小值
内部函数Math.max() 和 Math.min() 可以从参数中找到最大值和最小值:

1
2
Math.max(1, 2, 3, 4); // 4
Math.min(1, 2, 3, 4); // 1

如果要在数组中找最大最小值可以这样用:

1
2
3
var numbers = [1, 2, 3, 4];
Math.max.apply(null, numbers) // 4
Math.min.apply(null, numbers) // 1

透过 ES6 的展开运算符来完成:

1
2
3
var numbers = [1, 2, 3, 4];
Math.max(...numbers) // 4
Math.min(...numbers) // 1

6. 用逻辑运算代替条件判断

1
2
3
4
5
if(foo == 10){
    doSomething();
}
// 可以写成下面这样
foo == 10 && doSomething();

有时候在函数内,要判断使用者有没有输入参数,没有的话就设为默认值:

1
2
3
4
5
6
if(!foo){ 
// 如果 foo = undefined 或 null
    foo = 10;
}
// 可以写成下面这样
foo = foo || 10;

7. 判断是否很多数值中的一个

1
2
3
4
5
6
7
if(foo==1 || foo==22 || foo==43 || foo==51 || foo==63 || foo==83){
    doSomething();
}
//这样写很冗长,可以改成这样:
if([1, 22, 43, 51, 63, 83].indexOf(foo) != -1){
    doSomething();
}

8. 清空数组
通常会这样清空数组:

1
2
var list = [1, 2, 3, 4];
list = [];

但有性能更好的清空数组方式:

1
2
3
var list = [1, 2, 3, 4];
list.length = 0;
// list = []

如果只想删掉最后两个元素:

1
2
3
var list = [1, 2, 3, 4];
list.length = list.length - 2;
// list = [1, 2]
posted @ 2017-08-30 15:11  莫笑我胡为  阅读(318)  评论(0编辑  收藏  举报