麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

實例詳解ECMAScript5中新增的Array方法

2019-11-20 10:17:32
字體:
供稿:網(wǎng)友

ECMAScript5 給出了一系列新的API接口,這些接口在新的瀏覽器中大部分是被支持的,IE9,Chrome,F(xiàn)irFor都支持,也有少量API不是所有瀏覽器都支持,以下內(nèi)容僅介紹大部分被支持的API。利用新的API我們可以設(shè)計出非常靠譜的類,而且還能保持原有的javaScript的風(fēng)格。

ECMAScript5標(biāo)準(zhǔn)發(fā)布于2009年12月3日,它帶來了一些新的,改善現(xiàn)有的Array數(shù)組操作的方法。(注意兼容性)

在ES5中,一共有9個Array方法:http://kangax.github.io/compat-table/es5/

Array.prototype.indexOfArray.prototype.lastIndexOfArray.prototype.everyArray.prototype.someArray.prototype.forEachArray.prototype.mapArray.prototype.filterArray.prototype.reduceArray.prototype.reduceRight 

下面列舉了其中的7種方法,前5種方法很常見,很多開發(fā)者都會用到:

1、indexOf()

indexOf()方法返回在該數(shù)組中第一個找到的元素位置,如果它不存在則返回-1。

var arr = ['apple', 'orange', 'pear'],found = false;// 未使用for (var i = 0, l = arr.length; i < l; i++) {if (arr[i] === 'orange') {found = true;}}console.log("found:", found); // ==> found: true// 使用后console.log("found:", arr.indexOf("orange") != -1); // ==> found: true 

2、filter()

該filter()方法創(chuàng)建一個新的匹配過濾條件的數(shù)組。

不用 filter() 時:

var arr=[{"name":"apple", "count": 2},{"name":"orange", "count": 5},{"name":"pear", "count": 3},{"name":"orange", "count": 16},]var newArr = [];for (var i = 0; i < arr.length; i++) {if (arr[i].name === "orange") {newArr.push(arr[i]);}}console.log("Filter results:", newArr); 

用了 filter():

var newArr = arr.filter(function(item) {return item.name === "orange";});console.log("Filter results:", newArr); 

3、forEach()

forEach為每個元素執(zhí)行對應(yīng)的方法,是用來替換for循環(huán)的。

var arr = [1, 2, 3, 4, 5, 6, 7, 8];// 使用for循環(huán)for (var i = 0, l = arr.length; i < l; i++) {console.log(arr[i]);}// 使用forEach循環(huán)arr.forEach(function(item, index) {console.log(item);}); 

4、map()

map()對數(shù)組的每個元素進行一定操作(映射)后,會返回一個新的數(shù)組。

var oldArr = [{first_name: "Colin",last_name: "Toh"}, {first_name: "Addy",last_name: "Osmani"}, {first_name: "Yehuda",last_name: "Katz"}];function getNewArr() {var newArr = [];for (var i = 0; i < oldArr.length; i++) {var item = oldArr[i];item.full_name = [item.first_name, item.last_name].join(" ");newArr[i] = item;}return newArr;}var personName = getNewArr();personName.forEach(function(item, index) {console.log(item);})/****輸出結(jié)果:Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}****/ 

使用map()方法:

function getNewArr() {return oldArr.map(function(item, index) {item.full_name = [item.first_name, item.last_name].join(" ");return item;})}var personName = getNewArr();personName.forEach(function(item, index) {console.log(item);})/****輸出結(jié)果:Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}****/ 

5、reduce()

reduce()可以實現(xiàn)一個累加器的功能,將數(shù)組的每個值(從左到右)將其降低到一個值。也可以理解為:讓數(shù)組中的前項和后項做某種運算,并累積最終值;

場景: 統(tǒng)計一個數(shù)組中有多少個不重復(fù)的單詞;

var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];function getWordCnt() {var obj = {};for (var i = 0; i < arr.length; i++) {var item = arr[i];obj[item] = (obj[item] + 1) || 1;}return obj;}console.log(getWordCnt());// 輸出結(jié)果:// Object {apple: 2, orange: 3, pear: 1} 

使用reduce()后:

var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];function getWordCnt() {return arr.reduce(function(prev, next) {prev[next] = (prev[next] + 1) || 1;return prev;}, {});}console.log(getWordCnt());// 輸出結(jié)果:// Object {apple: 2, orange: 3, pear: 1} 

6 、array.some(callback[, thisObject]);callback : 函數(shù)用來測試某些元素。

thisObject: 對象作為該執(zhí)行回調(diào)時使用。

檢測數(shù)組中是否有某些項符合條件;

var scores = [45, 60, 70, 65, 95, 85];var current = 60;function passed(score) {return score > current;}console.log(scores.some(passed)); // == > true 

7、array.every(callback[, thisObject]);callback : 函數(shù)用來測試每個元素。thisObject: 對象作為該執(zhí)行回調(diào)時使用。

檢測數(shù)組中每一項是否符合條件;

var scores = [45, 60, 70, 65, 95, 85];var current = 60;function passed(score) {return score > current;}console.log(scores.every(passed)); // == > false

通過以上實例給大家介紹了ECMAScript5中新增的Array方法,希望對大家有所幫助!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久艹精品 | 逼特逼视频在线观看 | 黄色片在线免费播放 | 国产亚洲欧美日韩高清 | 羞羞视频免费入口网站 | 午夜精品在线视频 | 久久在现视频 | 久草在线精品观看 | 二级大黄大片高清在线视频 | 毛片大全在线观看 | 又黄又爽免费无遮挡在线观看 | 欧美一级毛片大片免费播放 | 最新黄色电影网站 | 亚洲视频成人在线 | 日本爽快片100色毛片视频 | 精品一区二区久久久 | 毛片视频在线免费观看 | 久久亚色 | 精品国产91一区二区三区 | 国产精品视频亚洲 | 免费在线观看国产 | 伦理三区 | 99精品视频在线看 | 精品一区二区免费视频视频 | 91看片免费版 | 青草久久网 | 久久午夜免费视频 | 欧美日韩一 | 黄色三级三级三级 | 中文字幕精品在线播放 | 国产一区二区二 | 欧美3p激情一区二区三区猛视频 | 久久99精品久久久久久园产越南 | 久久久精品视频网站 | 欧洲精品久久 | 麻豆自拍偷拍视频 | 精品成人国产在线观看男人呻吟 | asian附近女人裸体pics | 欧美性黄 | 日韩视频一 | 国产99久久精品一区二区 |