不使用全局变量返回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) )