数组中的一些高阶函数的使用
var nums = [10, 5, 11, 100, 55] //利用filter求偶数 var newNums = nums.filter(function(item) { return item % 2 === 0 // 偶数 }) console.log(newNums)
//利用map做映射 var newNums2 = nums.map(function(item) { return item * 10 }) console.log(newNums2)
//forEach: 迭代 nums.forEach(function(item) { console.log(item) })
//find和findIndex用法 var friends = [ {name: "why", age: 18}, {name: "kobe", age: 40}, {name: "james", age: 35}, {name: "curry", age: 30}, ] var findFriend = friends.find(function(item) { return item.name === 'james' }) console.log(findFriend) var friendIndex = friends.findIndex(function(item) { return item.name === 'james' }) console.log(friendIndex) //总结:前面几个方法中参数其实可以有三个(item,index,数组本身)
//reduce: 累加 var nums = [10, 5, 11, 100, 55] var total = 0 for (var i = 0; i < nums.length; i++) { total += nums[i] } console.log(total) //等价于下面 //说明:preValue上一次累加计算出来的值,而0是传入的初始值 //计算过程如下: // prevValue: 0, item: 10 // prevValue: 10, item: 5 // prevValue: 15, item: 11... var total = nums.reduce(function(prevValue, item) { return prevValue + item }, 0) console.log(total)