前端算法:(程序 = 算法 + 数据结构)
查重:
var arr = [1, 3, 2, 2, 3, 4, 5, 6, 8, 9, 10, 10] for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { console.log(arr[i]); } } }
var obj = {}; var count1 = 0; for (var i = 0; i < arr.length; i++) { count1++; if (!obj[arr[i]]) { obj[arr[i]] = true; } else { console.log(arr[i]); } } console.log('count1:', count1) //最优
排序算法:
冒泡排序:(比较 + 交换)
var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88] for (var j = 0; j < arr.length; j++) { for (var i = 0; i < arr.length; i++) { if (arr[i] > arr[i + 1]) { var temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } console.log(arr);
var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88] for (var j = 0; j < arr.length; j++) { for (var i = 0; i < arr.length – j; i++) { if (arr[i] > arr[i + 1]) { var temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } console.log(arr); //最优
选择排序:(使用场景:数据量较少的)
var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88] for (var i = 0; i < arr.length; i++) { var max = 0; for (var j = 0; j < arr.length - i; j++) { if (compare(arr[j], arr[max])) { max = j; } } exchange(arr, max, arr.length - i - 1); } console.log(arr); function compare(a, b) { if (a > b) { return true; } else { return false; } } function exchange(arr, m, n) { var temp = arr[m]; arr[m] = arr[n]; arr[n] = temp; }