1.forEachforEach
是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.filterfilter
爲「過濾」、「篩選」之意。指數組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
返回整數索引值,若是沒有匹配(嚴格匹配),返回-1
. fromIndex
可選,表示從這個位置開始搜索,若缺省或格式不合要求,使用默認值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的開始搜索)