Array.prototype.diff = function(a) { return this.filter(function(i) {return a.indexOf(i) < 0;}); }; //////////////////// // Examples //////////////////// [1,2,3,4,5,6].diff( [3,4,5] ); // => [1, 2, 6] ["test1", "test2","test3","test4","test5","test6"].diff(["test1","test2","test3","test4"]); // => ["test5", "test6"]
var arr = ['a', 'b', 'c', '1', 0, 'c', 1, '', 2,1, 0]; /* function unique(){ var ret = []; for(var i =0; i<arr.length;i++){ var item = arr[i]; if(ret.indexOf(item) === -1){ // IE6-IE8如下没有indexof()方法。 ret.push(item); } } return ret; }*/ function unique(){ var ret = []; var hash = {}; for (var i = 0; i < arr.length; i++) { var item = arr[i]; var key =typeof(item)+item; if(hash[key] != 1){ ret.push(item); hash[key] = 1; } }; return ret }
var arr = [1,0,10,3,5,6,2]; arr.sort(function(a,b){ return a - b; //从小到大排序 })
var seconds = 10; var timeAlarm = setInterval(showTime,1000); function showTime(){ seconds -= 1; console.log(seconds); if (seconds == 0) { clearInterval(timeAlarm); }; };
快排的思想: 算法
在数据集之中,选择一个元素做为"基准"(pivot)。数组
全部小于"基准"的元素,都移到"基准"的左边;全部大于"基准"的元素,都移到"基准"的右边。dom
对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到全部子集只剩下一个元素为止。
快排最坏时间O(n2),最好时间O(nlgn)ui
function quickSort(arr){ if(arr.length <= 1){ return arr;} var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex,1)[0]; var left = [] ,right =[]; for(var i = 0;i<arr.length;i++){ if(arr[i] > pivot){ right.push(arr[i]); }else{ left.push(arr[i]); } }; return quickSort(left).concat([pivot],quickSort(right)); }; var data =[85,24,63,45,17,31,96,50]; console.log( quickSort(data) );
var iArray =[]; function getRandom(iStart,iEnd){ var iChoice = iStart-iEnd+1; return Math.abs(Math.floor(Math.random()*iChoice))+iStart; } for(var i=0;i<10;i++){ iArray.push(getRandom(0,10)) };
function Trim(str,is_global) { var result; result = str.replace(/(^\s+)|(\s+$)/g,""); if(is_global.toLowerCase()=="g") { result = result.replace(/\s/g,""); } return result; }