91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現ES5新增數組

發布時間:2020-07-27 17:02:08 來源:億速云 閱讀:159 作者:小豬 欄目:web開發

這篇文章主要講解了如何實現ES5新增數組,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

1、靜態方法 isArray():

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

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

map方法將數組的所有成員依次傳入參數函數,然后把每一次的執行結果組成一個新數組返回。

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

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

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

3、forEach():

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

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

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

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方法用于過濾數組成員,滿足條件的成員組成一個新數組返回;
它的參數是一個函數,所有數組成員依次執行該函數,返回結果為true的成員組成一個新數組返回;
該方法不會改變原數組;
filter方法的參數函數可以接受三個參數:當前成員,當前位置和整個數組。

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

5、reduce();

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

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//最后結果:15

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

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

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

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

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

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

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

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

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

看完上述內容,是不是對如何實現ES5新增數組有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广德县| 阿拉善右旗| 齐齐哈尔市| 孟津县| 广宗县| 南江县| 山东省| 云浮市| 武山县| 临夏县| 腾冲县| 维西| 织金县| 炉霍县| 如皋市| 宣汉县| 蚌埠市| 昌宁县| 渭源县| 徐水县| 海安县| 抚州市| 剑阁县| 晋宁县| 蓝田县| 兰州市| 普格县| 澄迈县| 揭东县| 红原县| 莱西市| 奉化市| 高阳县| 鹤庆县| 长寿区| 射阳县| 屏东市| 牟定县| 沾化县| 靖州| 漳州市|