forEach()的使用:

基础使用语法:

array.forEach(function(value, index, array){
    console.log(value,index,array)
})

其中,回调函数中,第一个参数value是当前遍历的值,第二个参数index是当前遍历的下标,第三个参数array是数组本身
举例:

let array = [1, 2, 3];
array.forEach(function(value, index, array){
    console.log(value,index,array)
})

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_遍历数组

map的使用

会返回一个新的数据,其中值有map中的表达式决定。

基础使用语法:

let array3 = array2.map(value => 条件)
let res = array2.map(function(item,index,arr){
	return 条件;
})

举例:

let array2 = [4, 5, 6];
let array3 = array2.map(value => value * 2)
console.log(array2)
console.log(array3)

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_回调函数_02

filter的使用

会过滤原数组,返回一个新的数组,过滤条件由filter中表达式决定
基础使用语法:

let array5 = array4.filter(value => 条件)

举例:

let array4 = [1, 2, 3, 4, 5, 6];
let array5 = array4.filter(value => value % 2 === 0)
console.log(array4)
console.log(array5)

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_数据_03

reduce和reduceRight的使用

按照条件对原数组进行操作。
比如对原数组进行求和(求积),或在某数基础上对某一数组进行求和(求积)
基础使用语法:

let result = array6.reduce(函数,初始值,初始值下标,初始值下标数组)

举例:

let array6 = [1, 2, 3, 4];

function getSum(total, num) {
    return total + num;
}

let result1 = array6.reduce(getSum);
let result2 = array6.reduce(getSum, 3);
let result3 = array6.reduce(getSum, 1, [1, 2, 3]);
console.log(result1, result2, result3);

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_数组_04
reduceRight()方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做操作。

运算条件:求todo中finished为true的数据个数

finishedCount() {
  return this.todos.reduce((total, todo) => total + (todo.finished ? 1 : 0), 0)
}
find和findIndex的使用

find:查询数组中第一个满足某条件的值
findIndex:查询数组中第一个满足某条件的值的下标
基础使用语法:

array7.find((value => 条件))
array7.findIndex((value => 条件))

举例:

let array7 = [
    {name:'1',sex:'女',age:1},
    {name:'2',sex:'女',age:2},
    {name:'3',sex:'女',age:3},
    {name:'4',sex:'女',age:4},
];
console.log(array7.find((value => value.name==='4')))
console.log(array7.findIndex((value => value.name==='4')))

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_遍历数组_05

keys,values,entries的使用

ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
基础使用语法:

for(let index of 数组.keys()){
    console.log(index)	// 输出下标
}
for(let elem of 数组.values()){
    console.log(elem)	// 输出值
}
for(let [index,elem] of 数组.entries()){
    console.log(index,elem)	// 输出值和下标
}

举例:

let array8 = [1, 2, 3];
for(let index of array8.keys()){
    console.log(index)
}
for(let elem of array8.values()){
    console.log(elem)
}
for(let [index,elem] of array8.entries()){
    console.log(index,elem)
}

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_遍历数组_06

every和some的使用

判断数组中的所有或者任一数据是否满足某条件,如果满足返回true,否则返回false
基础使用语法:

console.log(array9.some(function (value, index, array) {
    return 判断条件;
}))
console.log(array9.every(function (value, index, array) {
    return 判断条件;
}))

举例:

let array9 = [1, 2, 3, 4, 5];
console.log(array9.some(function (value, index, array) {
    return value % 2 === 0;
}))
console.log(array9.every(function (value, index, array) {
    return value % 2 === 0;
}))

运行结果:
Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用_数组_07