数组排序
冒泡排序
let arr = [1, 33, 33, 1, 2,1 , 57,33];
console.log([...new Set(arr)])
let orderArr = [];
function Fun(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for(let j=0; j < len -1 -i;j++){
let temp = arr[j]
if(arr[j]>arr[j+1]){
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
return arr
}
选择排序(跟冒泡排序的思维有点像,只是一直跟最后一个比,这样一轮下来,就排完序了。)
var arr = [1,2,3,5,4,7,6];
for(var j = 0, l = arr.length; j < l; j++){
for(k = l; k > j; k--){
if(arr[j] > arr[k]){
var temp = arr[j];
arr[j] = arr[k];
arr[k] = temp;
}
}
}
console.log(arr); //[1,2,3,4,5,6,7]
数组去重
首先是最简单实现的(Set)
let arr = [1, 33, 33, 1, 2,1, 57,33];
console.log([...new Set(arr)])// [1, 33, 2, 57]
双重for循环
var arr = [1, 5, 6, 0, 7, 3, 0, 5, 9, 5, 5];
function unique(arr) {
for (var i = 0, len = arr.length; i < len; i++) {
for (var j = i + 1, len = arr.length; j < len; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--; // 每删除一个数j的值就要减1
len--; // j值减小时len也要相应减1(减少循环次数,节省性能)
}
}
}
return arr;
}
indexOf
var arr = [1, 2, 3 , 3, 2, 3, 3, 3];
function unique(arr) {
var arr1 = []; // 新建一个数组来存放arr中的值
for (var i = 0, len = arr.length; i < len; i++) {
if (arr1.indexOf(arr[i]) === -1) {
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr)); // [1,2,3]