摘要:對數組中的每一項運行給定函數。將所有的數組元素連接成一個字符串。返回第一個與給定參數相等的數組元素的索引,沒有則返回返回在數組中搜索到的與給定參數相等的元素的索引里最大的項。
數組
數組是比較簡單的內容,這里介紹數組常用的操作。
數組的創建和初始化非常簡單,你可以通過var arr = new Array()或者var arr = new Array("a","b","c")來創建一個數組。當然也可以簡單的var arr = [];這也是最通常的用法。
需要在數組末端追加元素,我們可以簡單的使用number[number.length] = 10;或者位面通常用到的number.push(10)。如果是在數組起始端添加元素,位面可以使用number.unshift(0).
相應的在數組中刪除元素,我們可以用number.pop()(從末端刪除),或者number.shift()(從起始端刪除)。還有我們也可以通過設置數組的長度來刪除數組,比如var number = [1,2,3,4];number.length=3;來刪除最后一個元素。
這里還有一個很常用的方法來添加,刪除和修改元素,同時它也可以克隆數組。這個就是splice.
var number = [1,2,3];
number.splice(1,1,4);//修改index為1的之后1位元素為4
number.splice(1,1,4);//將4添加到index為1的元素后面
number.splice(1,1);//刪除index為1后1位的元素
var clone = number.splice(0);//用于克隆數組
concat--連接2各或者更多數組,并返回結構。
every--對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true.
filter--對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組。
forEach--對數組中的每一項運行給定函數。
join--將所有的數組元素連接成一個字符串。
indexOf--返回第一個與給定參數相等的數組元素的索引,沒有則返回-1
lastIndexOf--返回在數組中搜索到的與給定參數相等的元素的索引里最大的項。
map--對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。
reverse--顛倒數組中元素的順序。
slice--傳入索引值,將數組對應索引范圍內的元素作為新數組返回。
some--對數組中的每一項運行給定函數,如果任一項返回true,則返回true。
sort--按照字母順序對數組排序,支持傳入指定排序方法的函數作為參數。
toString--將數組作為字符串返回
valueOf--將數組作為字符串返回
數組合并可以通過concat方法來合并多個數組。concat方法可以向一個數組傳遞數組,對象或者元素。數組會按照該方法傳入的順序連接指定數組。
var zero = 0; var positive = [1,2,3]; var negative = [-3,-2,-1]; var numbers = negative.concat(zero,positive);迭代器函數
前面介紹了很多用于迭代數組的函數。下面來舉一個例子,有一個數組,它是從1到10.找出數組中的偶數。
var isEven = function(x){ console.log(x); return (x%2==0) ? true : false; } var numbers = [1,2,3,4,5,6,7,8,9,10];
首先我們嘗試用every.它會迭代數組中的每一個元素,直到返回false。
numbers.every(isEven);
這樣數組numbers的第一個元素是1,它不是偶然,函數返回false。every執行結束了。
然后在看some.它與every類似,只是它運行到true之后停止執行。這樣當執行到2的時候,函數返回true便停止了。
numbers.some(isEven);
再看map函數,它會返回每個元素處理后的結果。
var result = numbers.map(isEven);
結果是[false,true,false,true,false,true,false,true,false,true].
還有一個filter方法,它返回的新數組由使函數返回true的元素組成:
var eventNumbers = numbers.filter(isEven);
這樣evenNumbers數組中的元素都是偶數[2,4,6,8,10].
最后再看一下reduce方法。它接受一個函數作為參數,這個函數后4個參數:previousValue,currentValue,index,array.這個函數會返回一個將被疊加到累加器的值,reduce方法停止執行后會返回這個累加值。如果是對一個數組中的所有元素求和,這個方法很有用。
對于排序我們可以使用sort方法,默認的sort方法會對數字按大小排序,對字符串按字母表排序,比如
numbers.sort()
或者可以自定義排序方法
numbers.sort((a,b)=>{return a-b});
對于自定義字符串的排序
var names = ["Ana", "ana", "john", "John"]; names.sort(function(a,b){ if(a.toLowerCase()b.toLowerCase()){ return 1; } return 0; }
參考書籍:Learning Javascript Data Structures and Algorithms
推薦一個找vue,angular組件的輪子工廠
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88392.html
摘要:鏈表前端的面試中,鏈表還是經常會被問到。這種數據結構非常方便,提供了便利店語法來訪問它的元素。參考書籍推薦一個找組件的輪子工廠前端面試總結數據結構與算法一前端面試總結數據結構與算法二前端面試總結數據結構與算法三 鏈表 前端的面試中,鏈表還是經常會被問到。所以熟悉鏈表的結果以及鏈表操作的方法還是很重要的。說道存儲多個元素,數組可能是最常用的數據結構。這種數據結構非常方便,提供了便利店[]...
摘要:結構的實例的方法,用于對每個成員執行某種操作,沒有返回值。參考和數據結構推薦一個找組件的輪子工廠前端面試總結數據結構與算法一前端面試總結數據結構與算法二前端面試總結數據結構與算法三前端面試總結數據結構與算法四 集合 集合是由一組無序且唯一的項組成。這個數據結構使用了與有限集合相同的數學概念。 創建一個集合 function Set(){ var items = {}; } ...
摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發生的事件就叫做異步。因為的存在,至少在被標準化的那一刻起,就支持異步編程了。然而異步編程真正發展壯大,的流行功不可沒。在握手過程中,端點交換認證和密鑰以建立或恢復安全會話。 1、前端 排序算法總結 排序算法可能是你學編程第一個學習的算法,還記得冒泡嗎? 當然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...
摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發生的事件就叫做異步。因為的存在,至少在被標準化的那一刻起,就支持異步編程了。然而異步編程真正發展壯大,的流行功不可沒。在握手過程中,端點交換認證和密鑰以建立或恢復安全會話。 1、前端 排序算法總結 排序算法可能是你學編程第一個學習的算法,還記得冒泡嗎? 當然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...
摘要:與異步編程按照維基百科上的解釋獨立于主控制流之外發生的事件就叫做異步。因為的存在,至少在被標準化的那一刻起,就支持異步編程了。然而異步編程真正發展壯大,的流行功不可沒。在握手過程中,端點交換認證和密鑰以建立或恢復安全會話。 1、前端 排序算法總結 排序算法可能是你學編程第一個學習的算法,還記得冒泡嗎? 當然,排序和查找兩類算法是面試的熱門選項。如果你是一個會寫快排的程序猿,面試官在比較...
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
閱讀 2915·2021-11-15 18:02
閱讀 3809·2021-10-14 09:43
閱讀 3748·2021-09-08 10:41
閱讀 2527·2019-08-30 15:53
閱讀 1810·2019-08-30 14:14
閱讀 1954·2019-08-29 16:12
閱讀 3151·2019-08-29 14:03
閱讀 1285·2019-08-29 13:46