数组操作的几个方法

数组操作的几个方法

 

一、数组去重

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

 

posted @ 2017-12-27 11:28  噜噜修  阅读(284)  评论(0编辑  收藏  举报