JavaScript數組(2)---遍歷/迭代方法 8種

最近工作中經常涉及到數據的處理,數組尤其常見,經常需要對其進行遍歷、轉換操作,網上的文章零零散散,不得已自己又找出紅寶書來翻出來看,順便記一筆,便于以后查詢。

  • 數組常用的方法

ECMAScript5為數組定義了8個迭代方法。每個方法都接受兩個參數:要在每一項上運行的函數fn和(可選的)運行該函數的作用域對象——影響 `this` 的值。

傳入這些方法中的函數(fn)會接收3個參數:item 、index 、array; 如:

array.forEach(function(item,index,array){//do your staff here;
},this)

?

根據使用方法的不同,這個函數執行后的返回值,可能會/不會影響方法中的返回值。

  這5個迭代方法作用及返回值概覽如下(末尾補充另外3個):

ECMAScript5 Array元素迭代方法
方法名方法作用 返回值
every()針對數組中每一項元素運行指定函數Boolean:若每一項都返回true,返回true;
filter()針對數組中每一項元素運行指定函數,Array: ? 返回函數運行返回true的元素組成的新數組
forEach()針對數組中每一項元素運行指定函數null:  無返回值
map()針對數組中每一項元素運行指定函數 Array:  返回函數運行后,得到到新新元素組成的新數組
some()針對數組中每一項元素運行指定函數Boolean: 若有任意一項執行函數后返回true, 則返回true

簡單來說:

every() 、some() 方法適合用于對數組元素進行條件判斷;

filter() ?、map() 方法適合用于對數組進行條件篩選/再處理;

forEach() 方法對不對數組本身做操作,僅僅對數組元素的二次應用;

下面介紹下各個方法的使用栗子:

先來假設一個場景,你拿到了公司的本月工資清單,假設你的工資為9000;公司員工工資組成的數組為salaries=[8500,12000,9900,9000],

a.?想知道 你的工資是不是最低的;

b.想知道 有沒有人和你工資一樣多;

c.想知道 ?是不是所有人待遇都一樣;

d.想 ? ? ?把大家的工資都換成K為單位的數據?

 1 var a,b,c,d;
 2 var your=9000;
 3 var salaries=[8500,12000,9900,9000];
 4  a=salaries.some(function(item,index,array){
 5    return  item<9000
 6 });
 7 console.log(a);//true;恭喜你,還有人比你工資更低
 8 
 9 
10 b=salaries.filter(function(item,index,array){
11    return item== your;
12 })
13 console.log(b);//[9000] 呵呵,有人跟你待遇一樣
14 
15 c=salaries.every(function(item,index,array){
16    return item==your; 
17 });
18 console.log(c);//false .不是所有人都和你一樣待遇哦
19 
20 d=salaries.map(function(item,index,array){
21    return item/1000 
22 });
23 console.log(d);//[8.5,12,9.9,9]

? PS:補充三個遺漏的方法

1.array.reduce(callback,[initalValue]):歸并函數——對每個數組元素執行回調函數,返回最后一次調用結果值

    //此處回調函數有4個參數,其中第4個參數可選;即calback(accumulator,value,index,array,initalValue)

2.Array.find(callback[,thisArg]):查找函數——返回第一個通過測試的元素

3.Array.findIndex(callback[,Arg]):查找函數——返回第一個通過測試的元素的索引值

?

看完這些是否覺得以后再也不需要for循環了,那么看看下面這個坑吧:

[1,2,3].map(parseInt);//[1,NaN,NaN]//注意:
//1.Array.map(iterm,index,array)
//2.parseInt(value,base)

?

轉載于:https://www.cnblogs.com/hbzyin/p/6493371.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393615.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393615.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393615.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用例設計:思維導圖orExcel

一、 某次緊急發版時使用思維導圖來進行了用例的設計&#xff0c;很被導圖多分支羅列、在單一分支上層層遞進設計模式的吸引&#xff0c;最終看到由版本主題開枝散葉衍發出的結構性用例時非常開心。從此&#xff0c;幾個版本的迭代都使用思維導圖進行用例設計。 然而部門制度關…

class對象和class文件_Class文件格式

我們知道Java是一門跨平臺的語言&#xff0c;我們編寫的Java代碼會被編譯成中間class文件以讓Java虛擬機解析運行。而Java虛擬機規范僅僅描述了抽象的Java虛擬機&#xff0c;在實現具體的Java虛擬機時&#xff0c;僅指出了設計規范。Java虛擬機的實現必須體現規范中的內容&…

2018計算機應用基礎考試6,2018結構工程師《計算機應用基礎》試題(6)

大家做好準備迎接2018考試了嗎?出國留學網為您整理了“2018結構工程師《計算機應用基礎》試題(6)”&#xff0c;跟著出國留學網來了解一下吧。要相信只要自己有足夠的實力&#xff0c;無論考什么都不會害怕!2018結構工程師《計算機應用基礎》試題(6)1、下列存儲器中&#xff0…

leetcode1282. 用戶分組(貪心算法)

有 n 位用戶參加活動&#xff0c;他們的 ID 從 0 到 n - 1&#xff0c;每位用戶都 恰好 屬于某一用戶組。給你一個長度為 n 的數組 groupSizes&#xff0c;其中包含每位用戶所處的用戶組的大小&#xff0c;請你返回用戶分組情況&#xff08;存在的用戶組以及每個組中用戶的 ID&…

mysql解鎖_mysql 解鎖

show OPEN TABLES where In_use > 0;show processlist;show status like Table%;show status like %lock%;show OPEN TABLES where In_use > 0&#xff1b;//1.查看當前數據庫鎖表的情況SELECT * FROM information_schema.INNODB_TRX;//2.殺掉查詢結果中鎖表的trx_mysql_…

強制換行和禁止換行

強制換行&#xff1a;word-break: break-all; 只對英文起作用&#xff0c;以字母作為換行依據word-wrap: break-word; 只對英文起作用&#xff0c;以單詞作為換行依據white-space: pre-wrap; 只對中文起作用&#xff0c;強制換行禁止換行&#xff1a;white-space: now…

構建自己的簡單微服務架構(開源)

構建自己的簡單微服務架構&#xff08;開源&#xff09; 原文:構建自己的簡單微服務架構&#xff08;開源&#xff09;前言 本篇僅作引導&#xff0c;內容較多&#xff0c;如果閱讀不方便&#xff0c;可以使用電腦打開我們的文檔官網進行閱讀。如下圖所示&#…

職業生涯愿景計算機,職業生涯愿景

《職業生涯愿景》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《職業生涯愿景(10頁珍藏版)》請在人人文庫網上搜索。1、職業生涯愿景職業生涯愿景設備安裝技術是掌握本專業必需的基本理論知識&#xff0c;具有設備制造、安裝、調試、管理、設計。施工方案編制的專業技…

leetcode881. 救生艇(貪心算法加雙指針)

第 i 個人的體重為 people[i]&#xff0c;每艘船可以承載的最大重量為 limit。 每艘船最多可同時載兩人&#xff0c;但條件是這些人的重量之和最多為 limit。 返回載到每一個人所需的最小船數。(保證每個人都能被船載)。 示例 1&#xff1a; 輸入&#xff1a;people [1,2]…

react避免子組件渲染_如何與React一起使用正確的方法來避免一些常見的陷阱

react避免子組件渲染One thing I hear quite often is “Let’s go for Redux” in our new React app. It helps you scale, and the App data shouldn’t be in React local state because it is inefficient. Or when you call an API and while the promise is pending, th…

[轉載]Spring配置文件詳解一:

2019獨角獸企業重金招聘Python工程師標準>>> 原文地址&#xff1a;Spring配置文件詳解一&#xff1a;<context:annotation-config/>與<context:component-scan base-package"com.xx 作者&#xff1a;愛情隨遇而安 <context:annotation-config/>…

mysql 8.0.16修改root密碼_mysql 8.0.16 winx64及Linux修改root用戶密碼 的方法

連接數據庫等基礎操作請自行解決哈&#xff0c;本篇是重點記錄如何改密碼。一、查詢用戶密碼:查詢用戶密碼命令&#xff1a;select host, user, authentication_string from mysql.user ;host&#xff1a;允許用戶登錄的ip‘位置%表示可以遠程&#xff1b;user&#xff1a;當前…

舞臺設計

舞臺設計 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdio> #include<queue> using namespace std;int ucol[1005],dcol[1005],lrow[1005],rrow[1005]; int numr[1005],numc[1005]; int a[100…

LoadRunner11支持的瀏覽器小結

LoadRunner11支持的瀏覽器小結轉載于:https://www.cnblogs.com/zwh-Seeking/articles/11060154.html

手機計算機的隱藏小技巧,漲知識!MIUI計算器原來有這么多隱藏小技巧,最后一個絕對想不到...

原標題&#xff1a;漲知識&#xff01;MIUI計算器原來有這么多隱藏小技巧&#xff0c;最后一個絕對想不到計算器除了我們需要進行日常的計算以外&#xff0c;幾乎是用不到的。但是MIUI中的計算器與普通計算器可不同&#xff0c;里面的隱藏小技巧足以讓你震驚到&#xff0c;那么…

如何使用JavaScript中的工廠函數構建可靠的對象

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!“發現功能JavaScript”被BookAuthority評為最佳新功能編程書籍之一 &#xff01; I suggest to take into consideration these ideas for building reliable …

leetcode99. 恢復二叉搜索樹(優先隊列)

二叉搜索樹中的兩個節點被錯誤地交換。請在不改變其結構的情況下&#xff0c;恢復這棵樹。示例 1:輸入: [1,3,null,null,2]1/3\2輸出: [3,1,null,null,2]3/1\2代碼 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …

Android零基礎入門第83節:Activity間數據傳遞方法匯總

2019獨角獸企業重金招聘Python工程師標準>>> 在Activity間傳遞的數據一般比較簡單&#xff0c;但是有時候實際開發中也會傳一些比較復雜的數據&#xff0c;本節一起來學習更多Activity間數據的傳遞。 一、常用數據類型 在前面幾節我們只學習了一些常用類型的數據傳遞…

mysql gz 安裝_Linux下安裝mysql 5.7.17.tar.gz的教程詳解

1.創建MySQL組和mysql用戶groupadd mysqluseradd -r -g mysql mysql2.拷貝&#xff1a;cp -R mysql-5.7.16-linux-glibc2.5-i686 /usr/local/mysql3.創建data目錄mkdir /usr/local/mysql/data3.安裝數據庫切換到/usr/loca/mysql目錄下cd /usr/local/mysql修改當前目錄的所有者為…

02-c#基礎之01-基礎語法(一)

1.注釋符 1&#xff09;注銷 2) 解釋 2.C#中的3種注釋符 1&#xff09;單行注釋// 2)多行注釋/*要注釋的內容*/ 3)文檔注釋///多用來解釋類或者方法 2.VS中的快捷鍵 轉載于:https://www.cnblogs.com/yoyo-524/p/6502827.html