javascript Array扩展
2009-09-21 00:00:00 来源:WEB开发网1.function isBigEnough(element, index, array) {
2. return (element <= 10);
3.}
4.var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
map
让数组中的每一个元素调用给定的函数,然后把得到的结果放到新数组中返回。。
如果其他浏览器没有实现此方法,可以用以下代码实现兼容:
1.Array.prototype.map = function(fn, thisObj) {
2. var scope = thisObj || window;
3. var a = [];
4. for ( var i=0, j=this.length; i < j; ++i ) {
5. a.push(fn.call(scope, this[i], i, this));
6. }
7. return a;
8.};
1.var numbers = [1, 4, 9];
2.var roots = numbers.map(Math.sqrt);
3.// roots is now [1, 2, 3]
4.// numbers is still [1, 4, 9]
reduce
让数组元素依次调用给定函数,最后返回一个值,换言之给定函数一定要用返回值。
如果其他浏览器没有实现此方法,可以用以下代码实现兼容:
01.Array.prototype.reduce = function(fun /*, initial*/)
02.{
03. var len = this.length >>> 0;
04. if (typeof fun != "function")
05. throw new TypeError();
06. if (len == 0 && arguments.length == 1)
07. throw new TypeError();
08. var i = 0;
09. if (arguments.length >= 2){
10. var rv = arguments[1];
11. } else{
12. do{
13. if (i in this){
14. rv = this[i++];
15. break;
16. }
17. if (++i >= len)
18. throw new TypeError();
19. }while (true);
20. }
21.
22. for (; i < len; i++){
23. if (i in this)
24. rv = fun.call(null, rv, this[i], i, this);
25. }
26. return rv;
27.};
1.var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });
2.// total == 6
Tags:javascript Array 扩展
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接