//利用sort方法進行排序 var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "100" arr[5] = "1" var arr1 = [12, 14, 15, 2, 4, 5, 214, 53, 75, 34] function fn(array) { return array.sort(function(a, b) { return a - b; }) } console.log(fn(arr1)) // 冒泡排序 function fn1(array) { var i = 0, len = array.length, j, d; for (; i < len; i++) { for (j = 0; j < len; j++) { if (array[i] < array[j]) { d = array[j]; array[j] = array[i]; array[i] = d; } } } return array; } console.log(fn1(arr1))
//線性搜索(入門HelloWorld) //A爲數組,x爲要搜索的值 function linearSearch(A, x) { for (var i = 0; i < A.length; i++) { if (A[i] == x) { return i; } } return -1; } //二分搜索 //A爲已按"升序排列"的數組,x爲要查詢的元素 //返回目標元素的下標 function binarySearch(A, x) { var low = 0, high = A.length - 1; while (low <= high) { var mid = Math.floor((low + high) / 2); //下取整 if (x == A[mid]) { return mid; } if (x < A[mid]) { high = mid - 1; } else { low = mid + 1; } } return -1; } //選擇排序 數據規模越小越好 //思路:找到最小值的下標記下來,再交換 function selectionSort(arr) { var len = arr.length; var minIndex, temp; for (var i = 0; i < len - 1; i++) { minIndex = i; for (var j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { //尋找最小的數 minIndex = j; //將最小數的索引保存 } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } return arr; } //插入排序 //假定當前元素以前的元素已經排好序,先把本身的位置空出來, //而後前面比本身大的元素依次向後移,直到空出一個"坑", //而後把目標元素插入"坑"中 function insertionSort(arr) { var len = arr.length; var preIndex, current; for (var i = 1; i < len; i++) { preIndex = i - 1; current = arr[i]; while(preIndex >= 0 && arr[preIndex] > current) { arr[preIndex+1] = arr[preIndex]; preIndex--; } arr[preIndex+1] = current; } return arr; } //字符串反轉(好比:ABC -> CBA) function inverse(s) { var arr = s.split(''); var i = 0, j = arr.length - 1; while (i < j) { var t = arr[i]; arr[i] = arr[j]; arr[j] = t; i++; j--; } return arr.join(''); } //js遞歸常見算法 階乘 function fact(num) { if (num <= 1) { return 1; } else { return num * arguments.callee(num - 1); //此處更改了。 } } var anotherFact = fact; fact = null; alert(anotherFact(4)); //結果爲24.
//更換對象的key值 var arr = ['e','f','g']; var obj = {a:1,b:2,c:3} var keyArr=[]; for(var key in obj){ keyArr.push(key); } arr.map(function(value,index,key){ obj[value] = obj[keyArr[index]]; delete obj[keyArr[index]] }); console.log(obj);
/*數組去重 根據對象的key值惟一性*/ var arr = [2,4,8,2,4]; var obj = {},i = 0; for(; i < arr.length; i++){/*數組先轉換爲obj對象*/ obj[arr[i]] = true; } console.log(obj); var newArr = []; for(var item in arr){/*遍歷數組的屬性 並判斷是不是對象的key值 若是是就push到新數組*/ if(obj.hasOwnProperty(item)){ newArr.push(item); } } console.log(newArr);