1.concat()
方法用于连接两个或多个数组
let arr1=[1,2];
let arr2=[3,4];
let arr3=[5];
let sum=arr1.concat(arr2,arr3);
console.log(sum); //输出结果[1,2,3,4,5]
2.every()
方法用于检测数组所有元素是否都符合指定条件(通过函数提供)(every()
不会改变原始数组,对于空数组并不会执行)
let ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.every(checkAdult)); //输出结果为false
3.fill()
方法用于将一个固定值替换数组的元素,原数组长度为多少,填充之后长度也为多少
var fruits = [2, 4, 6,8];
console.log(fruits.fill(3)); //输出结果为[3,3,3,3]
4.filter()
方法创建一个新的数组,新数组中的元素是返回符合条件的所有元素。(filter()
不会改变原始数组,对于空数组不会执行)
let ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.filter(checkAdult)); //输出结果为[32,33,40]
5.find()
方法返回符合条件的第一个元素的值。(find()
不会改变数组的原始值,对于空数组不会执行)
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.find(checkAdult)); //输出结果为18
6.findIndex()
方法返回符合条件的第一个元素的索引位置。(findIndex()
不会改变数组的原始值,对于空数组不会执行,如果没有符合条件的元素返回 -1)
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.findIndex(checkAdult)); //输出结果为2
7.forEach()
方法相当于一个for循环,item
和index
以及数组本身都会以回调函数的形式返回
var numbers = [4, 9, 16, 25];
alert(numbers.forEach((item,index,arr)=>{
console.log(item,index,arr);
//输出结果为
//4 0 [4,9,16,25]
//9 1 [4,9,16,25]
//16 2 [4,9,16,25]
//25 3 [4,9,16,25]
}))
8.Array.from()
有很多种用法,我认为比较有用的是一个对所有元素进行统一操作的方法
let arr=[1,2,3];
alert(Array.from(arr,x=>x*2)); //输出结果为[2,4,6] x即为一个回调函数的参数
9.includes()
方法用于返回数组中是否含有该元素,有则true
,没有则为false
,可以选填第二个参数为开始查找的索引起点位置
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
10.map()
方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。(map()
不会对空数组进行检测且不会改变原始数组。)
let numbers = [4, 9, 16, 25];
function myFunction() {
x = document.getElementById("demo")
x.innerHTML = numbers.map(Math.sqrt); //输出结果为[2,3,4,5]
}
11.some()
方法用于检测数组中的元素是否满足指定条件(函数提供)。(some()
不会对空数组进行检测且不会改变原始数组。)
let ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.some(checkAdult)); //输出结果为true
12.reduce()
方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。相当于数组中的所有元素先经过函数处理,然后进行累加(reduce()
不会对空数组进行检测且不会改变原始数组。)
var numbers = [15.5, 2.3, 1.1, 4.7];
function getSum(total, num) {
return total + Math.round(num); //对数值进行四舍五入,然后累加
}
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0); //可以计算出结果为16+2+1+5=24,输出结果为24
}
不过上面的方法可以用箭头函数的回调重写
let numbers=[15.5, 2.3, 1.1, 4.7];
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce((x,y)=>Math.round(x)+Math.round(y));
}
总结而言,其实很多新增的函数都是一个for
循环能解决的事情,就是相当于给你封装了一个方法,但是,相当于是多了一种达到目的的办法,而且,用习惯了也不错,能让你少写很多代码,也看起来更加高大上,从此少用for
循环,多尝试新的es6
方法吧
文中主要参考了菜鸟,如果还有不全的数组操作也请参考这里
网友评论