Js中Array 函數使用方法
阿新 • • 發佈:2018-05-12
ever filter AR str reference oba mozilla blank 所有
遇到數組有關操作,腦子第一反應不要再是嵌套 for 循環了,Array 類型提供了一些遍歷有關的函數。
- Array.prototype.forEach() : 把數組每個元素丟到一個處理 function 裏面,相當於 for 循環。
- Array.prototype.every() : 所有數組元素處理後全部 return true,那麽就 return true,有點像 &&。
- Array.prototype.some() : 只要一個數組元素處理後 return true,那麽就 return true,有點像 ||。
- Array.prototype.filter() : 將處理時 return true 的數組元素拿出來組成一個新數組。
- Array.prototype.map() : 對每個數組元素進行處理,並組成一個新數組。
- Array.prototype.reduce() : 像一個累加器一樣,把數組元素全部加起來(從左向右)。
- Array.prototype.reduceRight() : 同上,順序從右向左。
- Array.prototype.square = function () { return this.map(function(n) { return n*n; }); }
- Array.prototype.average = function () { return this.sum() / this.length; }
- Array.prototype.sum = function () { return this.reduce(function(a, b) { return a + b; }, 0); }
- Array.prototype.even = function () { return this.filter(function(item) { return 0 == item % 2; }); }
- Array.prototype.odd = function () { return this.filter(function(item) { return 0 != item % 2; }); }
例如有道題是要求判斷某個值是否存在與一個多層數組(locate([‘a’,’b’,[‘c’,’d’,[‘e’]]],’e’); // should return true)。
var locate = function(arr, v) { return arr.some(function(e) { return Array.isArray(e) ? locate(e, v) : e === v; }); } 再來一個統計字符串每個字母出現次數的函數: function count (string) { var count = {}; string.split(‘‘).forEach(function(s) { count[s] ? count[s]++ : count[s] = 1; }); return count; }Js中Array 函數使用方法