数组的遍历方法有以下几种
forEach:方法用于调用数组的每个元素,并将元素传递给回调函数。没有任何返回值.
语法: array.forEach(function(value, index, arr));
function(currentValue, index, arr) 是回调函数必须得.
var arr = ["a","b",255,512,"hello"];
var a = arr.forEach(function(value,index){
console.log(value);
console.log(index);
})
console.log(a);
map:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
语法: array.map(function(value,index,arr))
function(currentValue, index, arr) 是回调函数必须得.
var arr2 = [4,5,6,7,8]
var b = arr2.map(function(value,index){
// console.log(value)
// console.log(index)
return value+value*0.3;
})
console.log(arr2)
console.log(b)
filter
语法:array.filter(function(currentValue,index,arr))
filter() 方法创建一个新的数组,是将函数执行一遍,只有在布尔值为true的时候才会返回该数据
function(value, index, arr) 是回调函数必须得.
var c = arr2.filter(function(value,index){
console.log(value)
console.log(index)
return value <= 5
})
console.log(c)
find和findIndex(断言函数)
find 找到满足条件的元素后,直接返回,且停止循环.如果没有满足条件的则返回undefined.
findIndex 则返回第一个匹配元素的索引
1 获取数组中年龄大于 18 的第一个元素
var ages = [3, 20, 10, 18];
// var res6 = ages.find(function (v) {
// console.log(v);
// return v > 18;
// });
// console.log(res6);
var res7 = ages.findIndex(function (v) {
return v > 18;
});
console.log(res7);
some
用于检测数组中的元素是否满足指定条件,有一个满足则返回true,没有满足的返回false
var ages = [3, 10, 18, 20];
var res8 = ages.some(function (v) {
return v > 118;
});
console.log(res8);
every()
+ 语法: 数组.every(function (item, index, arr) {}) 判断数组内是否每一个都满足条件
返回值: 是一个布尔值: 如果为 true, 说明数组中每一个都满足条件;如果为 false, 说明数组中至少有一个不满足条件
注意: 以 return 的形式书写 判断条件
var arr = [ 100, 200, 300, 400, 500 ]
console.log('原始数组 : ', arr)
var res = arr.every(function (item) {
console.log(item)
return item > 100
})
console.log('返回值 : ', res)
reduce
接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
array.reduce(function(total, currentValue), ini tialValue)
total 计算结束后的返回值
currentValue 当前元素
initialValue 初始值,传给函数的初始值
var ages = [3, 10, 18, 20];
var sum = ages.reduce((x, y) => {
return x + y
}, 0)
console.log(sum);