js数组方法应用
forEach()
为数组中的每个元素调用一个函数
注意: map() 不会对空数组进行回调。
//给每个元素的type属性赋值
list.forEach(item => {
item.type = "type1"
})
map()
返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
//返回一个只有id的数组
let idList = list.map(item => {
return item.id
})
filter()
创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
//返回所有元素code等于this.code的数组
let arr = this.options.filter(item => item.code === this.code)
every()
用于检测数组所有元素是否都符合指定条件
- 如果所有元素都满足条件,则返回 true。
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
// 判断学生性别是否一致 返回true或false
let students = this.data;
let code = students[0].sexCode;
let result = students.every(item => item.sexCode === code)
find()
返回通过测试(函数内判断)的数组的第一个元素的值
注意: find() 不会对空数组进行检测。
注意: find() 不会改变原始数组。
//返回第一个元素value等于this.code的对象
let obj = list.find(item => item.value === this.code);
reduce()
接收一个函数作为累加器,reduce为数组中的每一个元素依次执行回调函数
注意: reduce() 对于空数组是不会执行回调函数的。
//语法
arr.reduce(function(prev, cur, index, arr), initialValue)
arr.reduce(function(初始值, 当前元素, 当前索引, 当前所属数组对象), 传递的初始值)
total, currentValue为必需参数
//以5为初始值累加说所有数组元素
let arr = [1, 2, 3];
let sum = arr.reduce((prev, cur, index, arr) => {
return prev + cur;
},5) //11
some()
用于检测数组中的元素是否满足指定条件,有一个满足则返回true
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
//数组中是否存在元素>30 返回true或false
var arr = [1,32,4,26];
let bb = arr.some(item => { return item > 30 })