清姿
IN A GOOD WAY

不使用全局变量返回1 2 3

function counter()
{
    var i=0;
    return function(){
      i++;
      return i;
    };
}

var count=counter();
count();

 

数组去除重复项

var arr=[1,3,5,3,5,3,4,6,2,2,2,1,7,84,34,634];
Array.prototype.unique=function (){
    var len=this.length;
    var obj={};
    var list=[];

    for(var i=0;i<len;i++){
        var cur=this[i];
        if(obj[cur]==undefined){
         obj[cur]=cur;
           list.push(cur);
        }
    }
        return list;
};

去重也可以用数组的indexOf方法来实现:

function unique (arr) {
  var result = []; 
  for (var i = 0; i < arr.length; i++)
  {
    if (result.indexOf(arr[i]) == -1) result.push(arr[i]);
  }
  return result;
}

利用查表法也可以实现去重:

//利用hash表,可能会出现字符串和数字一样的话出错,如var a = [1, 2, 3, 4, '3', 5],会返回[1, 2, 3, 4, 5]
function unique (arr)
{
    var hash = {},result = []; 
    for(var i = 0; i < arr.length; i++)
    {
        if (!hash[arr[i]]) 
        {
            hash[arr[i]] = true; 
            result.push(arr[i]); 
        }
    }
    return result;
}

 

replace相关:

function logArguments(){    
    console.log(arguments);//["nimojs@126.com", "nimojs", "@", "126.com", 0, "nimojs@126.com"] 
    return '返回值会替换掉匹配到的目标';
}
console.log(
    'nimojs@126.com'.replace(/(.+)(@)(.*)/,logArguments)
)

 

posted on 2014-12-22 20:04  清姿  阅读(156)  评论(0编辑  收藏  举报