数组操作的几个方法
一、数组去重
var arr =[1,32,5,435,46,547,658,67,9879,7,7,7,3454,6,54,765,8568,67,9,8,58,6,87,9,6,8,8,8,8,575];
var temp = {};
var result = [];
for (var i = 0; i < arr.length - 1; i++) {
//检查对象中有没有这个元素
if (!temp.hasOwnProperty(arr[i])) {
result.push(arr[i]);
temp[arr[i]] = 1;
};
};
console.log(result);
二、删除数组的制定下标
function delIdx(arr,idx){
arr = arr.splice(idx, 1);
return arr;
}
var arr = [1,324,564,6,56756,768,67,798,547];
arr = delIdx(arr,2);
console.log(arr);
三、数组排序方法
1.sort排序
var arr = [1,34,3,54,6,657,567,78,798,879];
//a位置在b之前
arr.sort(function(a,b){
if (a<b) {
return -1; //不用交换
}else{
return 1; //交换
};
})
console.log(arr);
2.冒泡排序
var arr =[1,224,4,5,546,57,678,89789,2352];
var arrLength = arr.length;
for (var i = 0; i < arrLength - 1; i++){
for (var k = 0; k < arrLength - i; k++) {
if (arr[k] >= arr[k+1]) {
var temp = arr[k];
arr[k] = arr[k+1];
arr[k+1] = temp;
};
};
};
console.log(arr);
3.快速排序(迭代)
var arr = [1,453,54,67,7,67,9879,908,05,6,464,64,4,63,53,16];
function quick(arr){
if (arr.length == 0) {
return;
};
//标杆
var pilot = arr[0];
//小数组
var small = [];
//大数组
var big = [];
for (var i = 1; i < arr.length; i++) {
if (arr[i] >= pilot) {
big.push(arr[i]);
}else{
small.push(arr[i]);
};
};
return quick(small).concat(pilot,quick(big));
}
console.log(quick(arr));
WEB前端学习交流群21 598399936