数组回调的应用
一 概念
```js
filter(function(value, index){ return true | false}):过滤器
every(function(value, index){ return 条件表达式; }):全部满足条件
some(function(value, index){ return 条件表达式; }):部分满足条件
reduce(function(prev,value,index){ return prev * value; }):累积
sort(function(o, n){ return o > n }):正逆向排序
```
二 代码示范
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>数组回调的应用</title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [4, 6, 2, 1, 5, 3];
// 过滤器: filter
// 回调函数
// 参数: 值, 索引, 所属数组
// 返回值: true | false
// 过滤器返回值: 过滤后得到的新数组
// 过滤掉不满足条件的数据
// 合为满足条件的数据
// 过滤器回调函数的执行次数 = 被过滤数组的元素个数
// 需要回调的函数
var getResult = function (v, i) {
// return true;
if (v < 5) {
return true;
}
}
var newArr = arr.filter(getResult);
console.log(arr);
console.log(newArr);
// 全部满足: every
// 回调函数
// 参数: 值, 索引, 所属数组
// 返回值: 值得条件表达式
// 过滤器返回值: true | false
// true:所有元素都满足条件
// false:有一个不满足条件即可
var res = arr.every(function(v) {
return v > 3;
});
console.log(res);
// 部分满足: some
res = arr.some(function(v) {
return v > 3;
});
console.log(res);
// 累积: reduce
arr = [4, 2, 1, 3, 5];
res = arr.reduce(function(prev,value,index){
return prev * value;
})
console.log(res); // 4*2*1*3*5
// 排序
newArr = arr.sort(function(o, n) {
// return o > n; // 升序, 没有回调函数
return o < n; // 降序
})
console.log(newArr);
</script>
</html>