JavaScript 之数组 总结

     数组的定义:

            new Array(length/content);
                var arr = new Array();
                var arr = new Array(10);  //--->括号里面第一位参数表示数组的长度arr.length = 10;
               
            字面量 
                var arr = [];
                var arr = [,,]   可以
                var arr = [1,2,,,,5,6]
                var arr1 = [10];   //  括号里面第一位参数表示数组的第一位值   
        数组的读和写  在js 里面几乎报不了错  因为数组趋于对象,数组是一种特殊的对象。
            arr[num] //不可以溢出读   结果为:undefined
            arr[num] = xxx; //可以溢出写

         数组的方法(es3.0基础,标准  es5.0在es3基础上加了新方法  es6.0 最新最强大飘逸的方法)

        数组常用的方法(es3.0)
                    改变原数组(在原来的数组上改变)
                        push, pop, shift, unshift, sort, reverse
                        splice
                    不改变原数组

                        concat, join -----> split, toString, slice

下面就分别介绍一下:

push 

在数组的最后一位添加值,可以同时添加好多位

   var arr = [];
   arr.push(9);

   用原生js实现push 方法

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

 在数组的最后一位剪切

   var arr = [1,2,3];
        arr.pop();     //-----3
        //此时arr = [1,2]
        arr.pop();   //-----2
        //此时arr = [1]

  pop 传参会忽略,就是无效

shift

减少东西,在数组的前面减切

unshift

添加东西,在数组的前面加

   var arr = [1,2,3];
        arr.unshift(0);   //----->4
        arr 会变成[0,1,2,3]   
        arr.shift();   //----->0
        arr会变成[1,2,3]
  reverse  

把原数组逆转过来

        var arr = [1,2,3];
        arr.reverse()  //---->[3,2,1]
    splice  

  切片方法

 var arr = [1,1,2,2,3,3];
            arr.splice(从第几位开始,截取多少长度,在切口处添加新的数据[多少数据都可以])
            arr.splice(1,2);   //---[1,2]  --->此时arr为[1,2,3,3]
            arr.splice(1,2,6,7,8);  //----[1,2]  ----->此时arr为[1,6,7,8,2,3,3]
            arr.splice(3,0,9);   //------[]  -----> 此时arr为[1,1,2,9,2,3,3]
           
            arr.splice(-1,1)   // ------[3] ------>arr变为[1,1,2,2,3]
         实现一下splice的第一个参数为负数时 编码原理
            
    splice = function(pos){
                    pos += pos > 0 ? 0 : this.length;  // 若第一位为负数,就从数组的最后一位开始截取
                    //此时计算出来的pos >= 0 || pos < length
                } 
 sort 

 让无序数组变成有序,给数组排序

   var arr = [1,3,6,2,5,8,7,9,-1];
        arr.sort();  //---->升序
        arr.sort().reverse() // -----降序
        
        var arr = [1,10,3,5,4];
        arr.sort();   //-----> 按ascll排序   变成[1,10,3,4,5]
  编程接口
        sort里面写一个功能函数规则
            1、必须写两个形参
            2、规则:看返回值
                        1>当返回值为负数值,那么前面的数挡在前面
                        2>为正数时 ,那么后面的数在前
                        3>为0,不动
  arr.sort(function(a, b){
            // if(a > b){
            //     return 1;
            // }
            // if( a < b){
            //     return -1
            // }
另一种写法
        // return a - b; // 升序
        // return b - a; //降序
           
        });
 concat  连接
var arr = [1,2,3,4,5,6,7];
var arr1 =["a",'b','c'];
console.log(arr.concat(arr1));
slice(从该位开始截取,截取到该位)
var newArr = arr.slice(1,3);
var newArr = arr.slice(1);     //从第一位开始截取直到最后    
var newArr = arr.slice();   //全部截取
   join(‘内容’)   

参数必须是字符串形式

会把数组里面的东西用字符串来连接

var arr = ['你','真','棒'];
arr.join('-');  //  "你-真-棒"
arr.join('*');  //  "你*真*棒"
arr.join(3);   // "你3真3棒"  最好用字符串形式
  split (‘内容’)  

将字符字符串按内容分开返回一个数组

var arr = [1,2,3,4,5,6];
var str = arr.join('-');  //---->  将数组返回字符串  str 是 "1-2-3-4-5-6"
str.split('-');  //------>  将字符串返回数组  ['1','2','3','4','5','6']
str.split('4');// ---->  ['1-2-3','5-6']


猜你喜欢

转载自blog.csdn.net/qq_41713692/article/details/80548062