當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)
生活随笔
收集整理的這篇文章主要介紹了
JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、參數為回調函數,function(數組中的項目,序號,數組本身){ },至少接收一個項目(item、value)參數
① every
?????????數組中所有內容都滿足回調函數的測試,返回值才為true,否則false,遇假停止,返回false
//value是數組中的每個元素的值,這個匿名函數會被數組循環調用var res = nums.every(function(value){//其中內容就是對值的判斷條件,例如驗證<50console.log(`當前判斷的值是:${value}`);return value<50;});//如果匿名函數中的判斷,都是真的,則最終的every的返回值就是真//有任何假的,則返回值就是假console.log(res);//判斷都是偶數var res1 = nums.every(function(value,index,array){//匿名函數共有3個參數:值 值的索引 當前數組。后兩個參數使用太少了console.log(`${value},${index},[${array}]`);return value%2 == 0;})②some
????????數組中內容存在任意一個滿足回調函數的測試的,返回值為true, 否則false,遇真停止,返回
var teachers = [{name:"lily",age:39,married:true},{name:"tom",age:27,married:false},{name:"jack",age:22,married:true},{name:"lucy",age:36,married:false},];//判斷數組中,是否存在年齡>35的人var result = teachers.some(function(item,index,arr){return item.age>35});console.log(result?"有人年齡>35":"沒有年齡>35的");//判斷是否有已婚的var result = teachers.some(function(item){return item.married})console.log(result?"有已婚":"沒已婚");③forEach
????????遍歷數組, 每個數組元素都被 回調函數處理
//數組的forEach方法:快速遍歷數組var emps = [{name:"丫丫",age:36},{name:"久久",age:19},{name:"明明",age:23},] //為每個年齡+1emps.forEach(function(item){item.age++;})//年齡翻一倍emps.forEach(function(item){item.age*=2})④map
????????創建新數組,新數組由回調函數的返回值組成
//map:創建一個新的數組,數組的值都是回調函數的返回值組成的var names = ["lily", "lucy", "john", "tom"];//回調函數:依然具備三個參數,都是可選的var new_names = names.map(function(item,index,arr){return index + item.toUpperCase()});⑤filter
????????創建新數組,滿足回調函數中的條件的元素, 會加入到新數組
var emps = [{name:"牛牛",gender:"男",age:20},{name:"丫丫",gender:"女",age:25},{name:"毛毛",gender:"女",age:29},{name:"婷婷",gender:"男",age:32}];//找出所有女性,放在新數組中var girls = emps.filter(function(item){return item.gender == "女"});//找出年齡<30的var young = emps.filter(function(item){return item.age<30});2、reduce: 合并數組中的元素的內容,形成最終的結果
????????參數1:回調函數:function (合并后的結果,item,index,arr){ }
? ? ? ?參數2:合并結果的初始值
??????? emps.reduce( function(sum,item){return sum + item.salary},0 );
var emps = [{name:"lucy",salary:8000},{name:"mike",salary:5500},{name:"tom",salary:11000},{name:"jerry",salary:7900},];//計算所有工資的總和//forEach寫法:var sum = 0;emps.forEach(function(item){sum += item.salary})//reduce 寫法://參數1:回調函數:function (合并后的結果,item,index,arr){}//參數2:合并結果的初始值let result = emps.reduce(function(sum,item){return sum + item.salary},0);總結
以上是生活随笔為你收集整理的JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简洁的简历模板_tex版本_面向秋招
- 下一篇: TPS 是一种糟糕的评价标准