最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ES5新增數(shù)組的實現(xiàn)方法

 更新時間:2020年05月12日 10:55:09   作者:huangfuyk  
這篇文章主要介紹了ES5新增數(shù)組的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1、靜態(tài)方法 isArray():

Array.isArray()
// Array.isArray方法返回一個布爾值,表示參數(shù)是否為數(shù)組。
// 它可以彌補typeof運算符的不足。
var arr = [1, 2, 3];
 console.log(typeof arr); // "object"
 Array.isArray(arr) // true
// 上面代碼中,typeof運算符只能顯示數(shù)組的類型是Object,
// 而Array.isArray方法可以識別數(shù)組。

2、實例(對象)方法 map():

map方法將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù),然后把每一次的執(zhí)行結(jié)果組成一個新數(shù)組返回。

var numbers = [1, 2, 3];
var res = numbers.map(function (n) {
 return n + 1;
});
res:  // [2, 3, 4]
numbers:// [1, 2, 3]
// 上面代碼中,numbers數(shù)組的所有成員依次執(zhí)行參數(shù)函數(shù),
// 運行結(jié)果組成一個新數(shù)組返回,原數(shù)組沒有變化。

map方法接受一個函數(shù)作為參數(shù)。該函數(shù)調(diào)用時,map方法向它傳入三個參數(shù):當前值、當前位置和數(shù)組本身。

[1, 2, 3].map(function(elem, index, arr) {
 return elem * index;
});
// [0, 2, 6]
// 上面代碼中,map方法的回調(diào)函數(shù)有三個參數(shù),elem為當前成員的
// 值,index為當前成員的位置,arr為原數(shù)組([1, 2, 3])

3、forEach():

forEach方法與map方法很相似,也是對數(shù)組的所有成員依次執(zhí)行參數(shù)函數(shù)。但是,forEach方法不返回值,只用來操作數(shù)據(jù)。這就是說,如果數(shù)組遍歷的目的是為了得到返回值,那么使用map方法,否則使用forEach方法。
forEach的用法與map方法一致,參數(shù)是一個函數(shù),該函數(shù)同樣接受三個參數(shù):當前值、當前位置、整個數(shù)組。

function log(elem, index, array) {
 console.log('[' + index + '] = ' + elem );
}
[2, 5, 9].forEach(log);
// [0] = 2
// [1] = 5
// [2] = 9

注意:forEach方法無法中斷執(zhí)行,總是會將所有成員遍歷完。如果希望符合某種條件時,就中斷遍歷,則要使用for循環(huán)。

var arr = [1, 2, 3];
for (var i = 0; i < arr.length; i++) {
 if (arr[i] === 2) break;
 console.log(arr[i]);  // 1
}

4、filter():

filter方法用于過濾數(shù)組成員,滿足條件的成員組成一個新數(shù)組返回;
它的參數(shù)是一個函數(shù),所有數(shù)組成員依次執(zhí)行該函數(shù),返回結(jié)果為true的成員組成一個新數(shù)組返回;
該方法不會改變原數(shù)組;
filter方法的參數(shù)函數(shù)可以接受三個參數(shù):當前成員,當前位置和整個數(shù)組。

// filter方法的參數(shù)函數(shù)可以接受三個參數(shù):當前成員,當前位置和整個數(shù)組。
var res = [1, 2, 3, 4, 5].filter(function (elem, index, arr) {
 return index % 2 === 0;
});
console.log(res); // [1, 3, 5]
// 上面代碼返回偶數(shù)位置的成員組成的新數(shù)組。

5、reduce();

reduce方法依次處理數(shù)組的每個成員,最終累計為一個值。reduce是從左到右處理(從第一個成員到最后一個成員)
reduce方法參數(shù)是一個函數(shù),該函數(shù)接受以下兩個參數(shù)。
1累積變量,默認為數(shù)組的第一個成員
2當前變量,默認為數(shù)組的第二個成員

var res = [1, 2, 3, 4, 5].reduce(function (a, b) {
 console.log(a, b);
 return a + b;
})
// 1 2
// 3 3
// 6 4
// 10 5
res//最后結(jié)果:15

上面代碼中,reduce方法求出數(shù)組所有成員的和:
第一次執(zhí)行,a是數(shù)組的第一個成員1,b是數(shù)組的第二個成員2;
第二次執(zhí)行,a為上一輪的返回值3,b為第三個成員3;
第三次執(zhí)行,a為上一輪的返回值6,b為第四個成員4;
第四次執(zhí)行,a為上一輪返回值10,b為第五個成員5;
至此所有成員遍歷完成,整個方法的返回值就是最后一輪的返回值15。

6、indexOf()、lastIndexOf()方法:

indexOf方法返回給定元素在數(shù)組中第一次出現(xiàn)的位置,返回結(jié)果是匹配開始的位置。如果沒有出現(xiàn)則返回-1。

var a = ['a', 'b', 'c'];
a.indexOf('b'); // 1
a.indexOf('y'); // -1
// indexOf方法還可以接受第二個參數(shù),表示搜索的開始位置。
['a', 'b', 'c'].indexOf('a', 1); // -1
// 上面代碼從1號位置開始搜索字符a,結(jié)果為-1,表示沒有搜索到。

lastIndexOf方法返回給定元素在數(shù)組中最后一次出現(xiàn)的位置,如果沒有出現(xiàn)則返回-1;
lastIndexOf方法的用法跟indexOf方法一致,主要的區(qū)別lastIndexOf從尾部開始匹配,indexOf則是從頭部開始匹配。
另外,lastIndexOf的第二個參數(shù)表示從該位置起向前匹配。

var a = [2, 5, 9, 2];
 a.lastIndexOf(2); // 3
 a.lastIndexOf(7); // -1

注意:這兩個方法不能用來搜索NaN的位置,即它們無法確定數(shù)組成員是否包含NaN。如下:

[NaN].indexOf(NaN);   // -1
[NaN].lastIndexOf(NaN);// -1

這是因為這兩個方法內(nèi)部,使用嚴格相等運算符(===)進行比較,而NaN呢,就比較狠,它連自己都不等于,是唯一一個不等于自身的值!

到此這篇關(guān)于ES5新增數(shù)組的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)ES5新增數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript實現(xiàn)html轉(zhuǎn)pdf的三種方法詳解

    JavaScript實現(xiàn)html轉(zhuǎn)pdf的三種方法詳解

    近期項目需要實現(xiàn)將?html?頁面轉(zhuǎn)換成?pdf?報告的需求,經(jīng)過一番調(diào)研以及結(jié)合過往經(jīng)驗,發(fā)現(xiàn)了三種技術(shù)方案,下面我們就來看看它們的具體實現(xiàn)步驟吧
    2024-02-02
  • 詳解ES6 擴展運算符的使用與注意事項

    詳解ES6 擴展運算符的使用與注意事項

    擴展運算符 (spread syntax) 是 ES6 提供的一種非常便捷的新語法,給我們操作數(shù)組和對象帶來了非常大的便利,我在很多文章中也提到了這個語法。但是其實擴展運算符的用法還是比較多比較雜的,我用一篇文章來做一下總結(jié),梳理一下擴展運算的語法和使用細節(jié)。
    2020-11-11
  • JS 按鈕點擊觸發(fā)(兼容IE、火狐)

    JS 按鈕點擊觸發(fā)(兼容IE、火狐)

    這篇文章介紹了JS 按鈕點擊觸發(fā),有需要的朋友可以參考一下
    2013-08-08
  • 深入探究JavaScript中作用域的底層機制

    深入探究JavaScript中作用域的底層機制

    引言?在?JavaScript?編程中,作用域是一個至關(guān)重要的概念,它決定了變量和函數(shù)的可訪問范圍,本文將深入探討?JavaScript?作用域的底層原理,感興趣的小伙伴可以了解一下
    2025-01-01
  • JS實現(xiàn)的視頻彈幕效果示例

    JS實現(xiàn)的視頻彈幕效果示例

    這篇文章主要介紹了JS實現(xiàn)的視頻彈幕效果,涉及javascript基于事件響應(yīng)的頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • JavaScript插件化開發(fā)教程 (二)

    JavaScript插件化開發(fā)教程 (二)

    本系列的開篇文章我們一起探討了jQuery如何開發(fā)插件,今天這篇文章,我們來繼續(xù)插件開發(fā)之旅,希望大家能夠喜歡。
    2015-01-01
  • 聊聊鑒權(quán)那些事(推薦)

    聊聊鑒權(quán)那些事(推薦)

    這篇文章主要介紹了聊聊鑒權(quán)那些事(推薦),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • JavaScript把局部變量變成全局變量的方法

    JavaScript把局部變量變成全局變量的方法

    這篇文章主要介紹了JavaScript把局部變量變成全局變量的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 原生ajax處理json格式數(shù)據(jù)的實例代碼

    原生ajax處理json格式數(shù)據(jù)的實例代碼

    這篇文章主要介紹了原生ajax處理json格式數(shù)據(jù)的實例代碼,需要的朋友可以參考下
    2016-12-12
  • 微信小程序工具函數(shù)封裝

    微信小程序工具函數(shù)封裝

    這篇文章主要為大家詳細介紹了微信小程序工具函數(shù)封裝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論

无为县| 桐梓县| 台山市| 台北县| 宣城市| 修文县| 水富县| 蓝田县| 汽车| 宁蒗| 武功县| 乃东县| 鲁甸县| 湖南省| 铁岭市| 三江| 留坝县| 罗田县| 绵阳市| 广州市| 凭祥市| 江山市| 嘉义县| 象州县| 长子县| 增城市| 和龙市| 江华| 武定县| 宁都县| 贡觉县| 嘉定区| 佛山市| 山阳县| 高邮市| 罗平县| 山西省| 庆元县| 化州市| 观塘区| 宣城市|