码迷,mamicode.com
首页 > Web开发 > 详细

js 零零散散的总结。

时间:2016-08-23 15:05:03      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

Array.slice.call(arguments);可以将一个类数组转化为数组。

    (function(){
        console.log(arguments);  //[] 是一个类数组
        console.log(arguments instanceof Array);//false
        console.log(typeof arguments);// object
    var _arguments = Array.prototype.slice.call(arguments);
        console.log(_arguments); // [] 数组
        console.log(_arguments instanceof Array);//true
        console.log(typeof _arguments); //object
})();

array.reduce(callback[, initialValue]);实现二维数组扁平化。

var flatten = matrix.reduce(function (previous, current) {
  return previous.concat(current);
});
console.log(flatten); //[1,2,3,4,5,6]
array.reduce(callback[, initialValue])

callback函数接受4个参数:之前值、当前值、索引值以及数组本身。initialValue参数可选,表示初始值。若指定,则当作最初使用的previous值;如果缺省,则使用数组的第一个元素作为previous初始值,同时current往后排一位,相比有initialValue值少一次迭代。

var sum = [1, 2, 3, 4].reduce(function (previous, current, index, array) {
  return previous + current;
});

console.log(sum); // 10

兼容性封装(针对ie6-8)

if (typeof Array.prototype.reduce != "function") {
  Array.prototype.reduce = function (callback, initialValue ) {
     var previous = initialValue, k = 0, length = this.length;
     if (typeof initialValue === "undefined") {
        previous = this[0];
        k = 1;
     }
     
    if (typeof callback === "function") {
      for (k; k < length; k++) {
         this.hasOwnProperty(k) && (previous = callback(previous, this[k], k, this));
      }
    }
    return previous;
  };
}

 

js 零零散散的总结。

标签:

原文地址:http://www.cnblogs.com/xiamer/p/5799109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!