Es5數組新增的方法及用法

1.forEach
forEach是Array新方法中最基本的一個,就是遍歷,循環。例以下面這個例子:
數組

[1, 2 ,3, 4].forEach(alert);
等同於下面這個傳統的for循環:spa

var array = [1, 2, 3, 4];code

for (var k = 0, length = array.length; k < length; k++) {
alert(array[k]);
}
forEach方法中的function回調支持3個參數,第1個是遍歷的數組內容;第2個是對應的數組索引,第3個是數組自己。索引

[].forEach(function(value, index, array) {
    // ... });

jQuery中的$.each方法:字符串

$.each([], function(index, value, array) {
    // ... });

var sum = 0;it

[1, 2, 3, 4].forEach(function (item, index, array) {
console.log(array[index] == item); // true
sum += item;
});io

alert(sum); // 10
2.mapconsole

var data = [1, 2, 3, 4];for循環

var arrayOfSquares = data.map(function (item) {
return item * item;
});ast

alert(arrayOfSquares); // 1, 4, 9, 16
callback須要有return值,若是沒有,就會是undefined

3.filter
filter爲「過濾」、「篩選」之意。指數組filter後,返回過濾後的新數組。用法跟map極爲類似:

var data = [0, 1, 2, 3];
var arrayFilter = data.filter(function(item) {
    return item;
});
console.log(arrayFilter); // [1, 2, 3]
返回值只要是弱等於就能夠了,而非非得返回 .
4.some
意指「某些」,指是否「某些項」合乎條件。與下面的算是好基友,表示是否「每一項」都要靠譜。

要求至少有1個值讓返回就能夠了== true/false=== true/falsesomeeveryeverysomecallbacktrue

var scores = [5, 8, 3, 10];
var current = 7;

function higherThanCurrent(score) {
return score > current;
}

if (scores.some(higherThanCurrent)) {
alert("經過了!");
}

5.every
some的基友關係已是公開的祕密了,一樣是返回Boolean值,不過,every須要每個妃子都要讓朕滿意,不然——「來人,給我拖出去砍了!」

6.indexOf

返回整數索引值,若是沒有匹配(嚴格匹配),返回-1fromIndex可選,表示從這個位置開始搜索,若缺省或格式不合要求,使用默認值0。

var data = [2, 5, 7, 3, 5];
console.log(data.indexOf(5, "3")); // 4 (從3號位開始搜索)
7.lastIndexOf
方法與方法相似:
只是是從字符串的末尾開始查找,而不是從開頭。還有一個不一樣就是的默認值是而不是.
lastIndexOfindexOflastIndexOffromIndexarray.length - 10
var data = [2, 5, 7, 3, 5];
console.log(data.lastIndexOf(5, 3)); // 1 (從後往前,索引值小於3的開始搜索)
相關文章
相關標籤/搜索