一、数组方法
迭代(遍历)方法:
forEach()、map() 、filter()、some()、every()
- forEach()
注意:遇到了return false并不会终止循环
// array.forEach ( function (currentvalue,index,arr))
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身
var arr = [1,2,3,4,5];
var sum = 0;
// 计算总和
arr.forEach(function(item,index,arr){
console.log('当前元素:' + item);
console.log('当前索引:' + index);
console.log('数组本身' + arr);
sum += item;
})
console.log(sum);
- map()
// array.map(function(currentValue,index,arr))
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身
arr = [1,2,3,4,5,6];
var newArr = arr.map(function(item,index,arr){
return item * 2
})
console.log(newArr) //[ 2, 4, 6, 8, 10, 12 ]
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
- filter()
注意:遇到了return false并不会终止循环
// array.filter(function (currentvalue, index,arr))
// filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
// 注意它直接返回一个新数组
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身
var arr = [12,23,34,41,53];
// 返回大于30的数据:
var newArr= arr.filter(function(item,index,arr){
return item > 30
})
console.log(newArr);
- some()
注意:遇到了return true会终止循环
// array.some (function (currentvalue, index,arr))
// some() 方法用于检测数组中的元素是否满足指定条件.通俗点查找数组中是否有满足条件的元素。
// 注意它返回值是布尔值,如果查找到这个元素,就返回true,如果查找不到就返回false。
// 如果找到第一个满足条件的元素,则终止循环不再继续查找。
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身
arr = [1,2,3,4,5,6];
var flag = arr.some(function(item,index,arr){
return item >13
})
console.log(flag) // false
- every()
array.every(function(currentValue,index,arr))
// every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
// every() 方法使用指定函数检测数组中的所有元素:
// 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
// 如果所有元素都满足条件,则返回 true。
// 注意: every() 不会对空数组进行检测。
// 注意: every() 不会改变原始数组。
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身
arr = [2,3,4,5,6];
var flag = arr.every(function(item,index,arr){
return item > 2
})
console.log(flag) // false
区别:
// 0.forEach()方法不会返回执行结果,而是undefined。也就是说,forEach()会修改原来的数组。而map()方法会得到一个新的数组并返回
// 1. map是每一个值通过函数内部处理之后,再返回一个全新的数组内容的
// 2. filter 是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来。
// 3. some 是查找满足条件的元素是否存在,返回的是一个布尔值。如果查找到第一个满足条件的元素就终止循环。
// 4. every是查找所有元素是否满足指定的条件,返回的是一个布尔值。如果查找到第一个元素不满足条件的元素就终止循环。