数组常用方法
1.filter()
方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组.
array.filter(callback, thisArg)
2.map()
方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组.
array.map(callback, thisArg)
3.every()
方法用于测试数组中所有元素是否都通过了指定函数的测试.
array.every(callback, thisArg)
4.some()
方法用于测试数组中是否至少有一项元素通过了指定函数的测试.
array.some(callback, thisArg)
5.forEach()
方法为为每个元素执行对应的方法.
return ; 不能停止循环
6. 展开运算符
方法允许一个表达式在某处展开.常用的场景包括: 函数参数,数组元素, 对象 解构赋值.
Var arr = [1,2,3];
console.log([‘a’ , …arr , ‘b’]); // [ ‘a’,1,2,3, ‘b’ ];
7. find ()和 findIndex()
find ()用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值 为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
findIndex()返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
都可以接受第二个参数,用来绑定回调函数的对象。
[1, 4, -5, 10].find((n) => n < 0)
[1, 5, 10, 15].find(function(value, index, arr) { return value > 9;
}) // 10
8.ES5 数组方法 Array.reduce()
快速求和:
var ae = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let num = ae.reduce((pre, cur) => { return a + b });
寻找最大值:
var ae = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let num = ae.reduce((pre, cur) => { Math.max(pre, cur) });
数值扩展
1. Number.isFinite()
方法用来检查一个数值是否为有限的(finite)。
Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
2. Number.isNaN()
方法用来检查一个值是否为NaN。
Number.isNaN(NaN) // true
Number.isNaN(15) // false
3. Math. trunc()对象
方法用于去除一个数的小数部分,返回整数部分。
Math. trunc(4.1) // 4
Math. trunc(4.9) // 4
Math. trunc(-4.1) // -4
4. Math.sign()
方法用来判断一个数到底是正数、负数、还是零。 它会返回五种值。
参数为正数,返回+1;
参数为负数,返回-1;
参数为0,返回0;
参数为-0,返回-0;
其他值,返回NaN。
Math.sign(-5) // -1
Math.sign(5) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.sign(NaN) // NaN
Math.sign('foo'); // NaN
5. Math.clz32()
方法返回一个数的32位无符号整数形式有多少个前导0。
Math.clz32(1000) // 22
6. Array.from ()
方法用于将两类对象转为真正的数组 .类似数组的对象(array-like object)和可遍历(iterable)的对象
可以进行链式操作
7. Array.of ()
方法用于将一组值,转换为数组。 必须参数个数大于2;
Array.of(3, 11, 8) // [3,11,8]
8.includes() 该方法属于ES7
Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true