首页 > 编程语言 > 详细

Js自定义数组map之bigmap

时间:2017-05-27 18:57:44      阅读:378      评论:0      收藏:0      [点我收藏+]
 1         /**
 2          * like map,but prev,curr,next and index will be given
 3          * @param  {Function} cb Callback,the parameters ara prev,curr,next and index
 4          * @return {[type]}      [description]
 5          */
 6         Array.prototype.bigmap=function(cb){
 7             var copy = this.slice(0);
 8             var len = this.length;
 9             for (var i = 0; i < len; i++) {
10                 var curr = this[i];
11                 var prev = i==0?undefined:this[i-1];
12                 var next = i==len?undefined:this[i+1];
13                 var ret = cb(curr,prev,next,i);
14                 if(ret){
15                     copy[i]=ret;
16                 }
17             }
18             return copy;
19         }
20 
21         //写个栗子
22         // [1,2,3,4,7,9,10,50]  =>  ["1-4", "7", "9-10", "50"]
23 
24         var arr = [1,2,3,4,7,9,10,50];
25         arr = arr.bigmap(function(curr,prev,next,i){
26             // console.log(curr+"--"+prev+"--"+next+"--"+i)
27             if(prev+1==curr){
28                 var ret = "_";
29                 if(next-1!=curr){
30                     ret += curr;
31                 }
32                 return ret;
33             }
34         }).filter(function(obj){
35             return obj!="_";
36         }).toString().replace(/,_/g,"-").split(",");
37 
38         console.log(arr)

 

Js自定义数组map之bigmap

原文:http://www.cnblogs.com/PheonixHkbxoic/p/6913990.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!