数组回调的应用

一 概念
```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>

 
posted @ 2018-10-17 17:49  不沉之月  阅读(182)  评论(0编辑  收藏  举报