摘要:函數接收個參數前一個值,當前值,項的索引,數組對象。第一次迭代發生在數組的第二項,因此第一個參數是是數組的第一項,第二個參數是數組的第二項。迭代從數組的第一項到最后一項迭代從數組的最后一項到第一項同上面結果一樣。
博客同時同步到github
位置方法這兩個方法都接收兩個參數:要查找的項和表示起點位置的索引(可選),indexOf()從數組開頭開始向后查,相反的,lastIndexOf()從數組的末尾開始向前查找,返回查找的項在數組中的位置,沒有找到返回-1。
1.indexOf()
var array = [1,2,3,2,1]; console.log(array.indexOf(2));//1
2.lastIndexOf
console.log(array.lastIndexOf(2));//3
兼容性:支持它們的瀏覽器包括IE9+,Firefox2+,Safari3+,Opera9.5+,Chrome
迭代方法ECMASCript5為數組定義了5個迭代方法。每個方法接收兩個參數:
要在每一項上運行的函數和運行該函數的作用域對象(可選)---影響this的值。
傳入這些方法中的函數接收三個參數:
數組項的值(ele),該項在數組中的位置(index),數組本身(arr)。這5種方法都會對數組的每一項運行給定函數但是不同的方法的返回值不同。
every():若該函數對每一項都返回true,則返回true
var num = [1,2,3,2,1]; var result = num.every(function(item,index,array){ return (item > 2); }) console.log(result);//true
filter():返回該函數會返回true的項組成的數組
var num = [1,2,3,2,1]; var result = num.filter(function(item,index,array){ return (item > 2); }) console.log(result);//[3]
forEach():無返回值
var num = [1,2,3,2,1]; var result = num.forEach(function(item,index,array){ return (item > 2); }) console.log(result);//undefined
map():返回每次調用結果組成的數組
var num = [1,2,3,2,1]; var result = num.map(function(item,index,array){ return (item > 2); }) console.log(result);// [false,false,true,false,false]
some():如果該函數中有一項返回true,則返回ture
var num = [1,2,3,2,1]; var result = num.some(function(item,index,array){ return (item > 2); }) console.log(result);//true
聲明:以上方法均不會修改數組本身
兼容性:支持它們的瀏覽器包括IE9+,Firefox2+,Safari3+,Opera9.5+,Chrome
ECMAScript增加了兩個縮小數組的方法,這兩個方法都會迭代數組中的所有項,然后構建一個最終返回的值。
這兩個方法都接收兩個參數:
一個在每一項上調用的函數,一個是作為縮小基礎的初始值(可選)。
函數接收4個參數:
前一個值(pre),當前值(cur),項的索引(index),數組對象(arr)。
這個函數返回的任何值都會作為第一個參數自動傳給下一項。第一次迭代發生在數組的第二項,因此第一個參數是是數組的第一項,第二個參數是數組的第二項。
1.reduce():迭代從數組的第一項到最后一項
var val = [1,2,3] var sum = val.reduce(function(pre,cur,index,array){ return pre + cur; }) console.log(sum);//6
var a = [1,2,3,4,5]; a.reduce(function(pre,curr,index,arr){ console.log(pre); console.log(curr); console.log(index); console.log(arr); }) 1 2 1 [1,2,3,4,5] undefined 3 2 [1,2,3,4,5] undefined 4 3 [1,2,3,4,5] undefined 5 4 [1,2,3,4,5]
2.reduceRight():迭代從數組的最后一項到第一項
同上面結果一樣。
兼容性:支持它們的瀏覽器包括IE9+,Firefox3+,Safari4+,Opera10.5+,Chrome
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86169.html
摘要:屬性是一個值或一組值以數組或對象的形式,是對象的成員。可以使用內置構造函數和創建包裝對象。因此下面的代碼將會使人很迷惑結果結果,此數組長度為應該盡量避免使用數組構造函數創建新數組。給數組對象添加返回數組中最大元素值的方法。 對象部分 Object類型 Object 是一個無序的集合,可以存放任意類型對象,所有其他對象都繼承自這個對象。創建Object類型有兩種,一種是使用new運算符,...
摘要:數組的構造函數由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用符號來創建一個新數組。總結綜上所述,我們應該盡量使用來創建新函數,而不是數組的構造函數,這樣代碼將有更好的可讀性。 數組的構造函數 由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用 [] 符號來創建一個新數組。 [1, 2, 3]; // Result: [1, 2, 3] new Array(1, ...
摘要:方法始終從前向后找參數接收兩個參數,第一個參數可以是一個對象或者一個字符串這個字符串不會轉換成正則表達式,第二個參數可以是一個字符串或者一個函數。要想替換所有子字符串,唯一的辦法就是提供一個正則表達式,而且要指定全局標志標志。 字符串的模式匹配方法 match() 參數:只接受一個參數,要么是一個正則表達式,要么是一個RegExp()對象。 返回:數組。數組中的第一項是與整個模式匹配的...
摘要:而事件循環是主線程中執行棧里的代碼執行完畢之后,才開始執行的。由此產生的異步事件執行會作為任務隊列掛在當前循環的末尾執行。在下,觀察者基于監聽事件的完成情況在下基于多線程創建。 主要問題: 1、JS引擎是單線程,如何完成事件循環的? 2、定時器函數為什么計時不準確? 3、回調與異步,有什么聯系和不同? 4、ES6的事件循環有什么變化?Node中呢? 5、異步控制有什么難點?有什么解決方...
摘要:并列數據的集合數組用方括號表示。第三種類型是映射,也就是一個名值對,即數據有一個名稱,還有一個與之相對應的值,這又稱作散列或字典,比如首都北京。中有種簡單數據類型也稱為基本數據類型和。數值布爾值對象和字符串值都有方法。 什么是JSON JSON:JavaScript 對象表示法(JavaScript Object Notation)。 JSON的形式是用大括號{}包圍起來的項目列表...
閱讀 3110·2021-11-10 11:36
閱讀 3312·2021-10-13 09:40
閱讀 6051·2021-09-26 09:46
閱讀 662·2019-08-30 15:55
閱讀 1409·2019-08-30 15:53
閱讀 1580·2019-08-29 13:55
閱讀 2997·2019-08-29 12:46
閱讀 3204·2019-08-29 12:34