jsの配列相関関数

19630 ワード

        //     push  
        var arr = [1,2,3];
        Array.prototype.push = function () {
           for(var i = 0; i < arguments.length; i++) {
               this[this.length] = arguments[i];
           } 
           return this.length;
        }

        //    pop         
        Array.prototype.pop = function () {
            this.length > 0 ? this.length = this.length - 1 : this.length = 0;
            return this.length;
        }
        //   unshift       
        Array.prototype.unshift = function () {
            var L = arguments.length + this.length - 1;
            for(var i = L; i > 0; i--) {
                if(i > arguments.length - 1){
                    this[i] = this[i - arguments.length];
                }else{
                    this[i] = arguments[i];
                }
            }
            return this.length;
        }

        var arr1 = [1,3,6,2,8,7];
        // sort  
        // 1.      
        // 2.     1)        ,          
        //           2)   ,         
        //           3) 0,  
        //     
        arr1.sort(function (a, b) {
            // return a > b ? -1 : +1;
            return a - b; //   
            // return b - a;  //  
        })


        //         ,  
        var arr2 = [1,2,3,4,5,6,7];
        arr2.sort(function (a, b) {
            return Math.random() - 0.5;
        })
		var xiaoliu = {
            name : 'liu',
            age : 18,
            sex : 'male',
            face : 'handsome'
        }

        var xiaoli = {
            name : 'li',
            age : 28,
            sex : 'male',
            face : 'amazing'
        }

        var xiaoqin = {
            name : 'qin',
            age : 22,
            sex : 'male',
            face : 'handsome'
        }
        //           
        var arr3 = [xiaoli, xiaoliu, xiaoqin];
        arr3.sort(function(a, b) {
            // return a.age - b.age;
            return (a["age"] - b["age"]);
        })

        //        
        var arr4 = ['ac', 'bcd', 'cccc', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
        arr4.sort(function(a, b){
            return a.length - b.length;
        })
        //     
        function retBrtys(str) {
            var num = str.length;
            for(var i = 0; i < num; i++){
                if(str.charCodeAt(i) > 255){
                    num ++
                }
            }
            return num;
        }

        var arr5 = ['ac  ', 'bcd', 'cccc     ', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
        arr5.sort(function(a, b){
            return retBrtys(a) - retBrtys(b);
        })

		//          
        // concat       ,            
        arr6 = [1,2,3,4,5];
        arr7 = [6,7,8,9,10];
        arr6.concat(arr7);

        // slice() 1           
        //         2            (1,2)        
        //         0        

        // join            string
        // arr7.join("| ");

        // split()