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; }