zoukankan      html  css  js  c++  java
  • js基础(数组)

     

    对象的分类:内建对象、宿主对象、自定义对象

    普通对象使用属性名进行访问,数组对象使用索进行访问

    创建一个数组:var arr = new Array();

    使用typeof检查一个对象,会返回一个object

    向数组中添加一个元素:arr[0] = 1;

    对于连续的数组,使用length可以获取到数组的长度(元素的个数),对于非连续型数组,使用length会获取到数组的最大索引+1,尽量不要使用非连续型数组

    修改length,arr.length = 5、如果修改后的length大于原长度,则多出来的部分会空出来,如果修改的length小于原长度,则多于的长度户会直接删除

     

    使用字面量创建数组:var arr = [13,"abc", true, 53.2];

    使用构造函数创建数组的时候,也可以同时添加元素,将要添加的元素作为构造函数的参数进行传递    var arr = new Array(343,"jack", true, 45.3);

    push()//该方法可以向数组的末尾添加一个或者多个元素,并返回数组的新长度

    var arr = new Array(343,"jack", true, 45.3);
    var result = arr.push("Tom",false);
    console.log(arr);//[343, "jack", true, 45.3, "Tom", false]
    console.log(result);//6

    pop()//该方法可以删除数组的最后一个元素,并将删除的元素作为返回值进行返回

    var arr = new Array(343,"jack", true, 45.3);
    var result = arr.push("Tom",false);
    console.log(arr);//[343, "jack", true, 45.3, "Tom", false]
    console.log(arr.pop());//false
    console.log(arr);//[343, "jack", true, 45.3, "Tom"]

    unshift()  //向数组开头添加一个或者多个元素,并返回数组的新长度,其他元素自动进行调整

    var arr = new Array(343,"jack", true, 45.3);
    var result = arr.unshift("新增元素1","新增元素2");
    console.log(arr);//["新增元素1", "新增元素2", 343, "jack", true, 45.3]

    shift()  //删除元素的个数,并将删除的元素返回

    var arr = new Array(343,"jack", true, 45.3);
    var result = arr.unshift("新增元素1","新增元素2");
    console.log(arr);//["新增元素1", "新增元素2", 343, "jack", true, 45.3]
    result = arr.shift();
    console.log(arr);//["新增元素2", 343, "jack", true, 45.3]
    console.log(result);//新增元素1

    forEach()需要一个函数作为参数,这种函数称为回调函数  //这个方法只支持IE8以上的浏览器

    var arr = new Array(343,"jack", true, 45.3);
    arr.forEach(function(value , index , obj){
                        console.log("index:" + index + "    value:" + value+ "    obj:" + obj);
              });
    
    //输出结果:
    index:0    value:343     obj:343,jack,true,45.3
    index:1    value:jack    obj:343,jack,true,45.3
    index:2    value:true    obj:343,jack,true,45.3
    index:3    value:45.3    obj:343,jack,true,45.3

    slice():从数组中提取指定的元素,这个方法不会改变元素数组,而是将截取的元素封装到一个新的数组进行返回

    /*         - 参数:
     *                  1.截取开始的位置的索引,包含开始索引
     *                  2.截取结束的位置的索引,不包含结束索引
     *                            - 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
     *                  - 索引可以传递一个负值,如果传递一个负值,则从后往前计算
     *                            -1 倒数第一个
     *                            -2 倒数第二个
     */
    var arr = [343,"jack", true, 45.3, false];                  
    var result = arr.slice(1,4);
    console.log(result);//["jack", true, 45.3]
    result = arr.slice(3);
    console.log(result);//[45.3, false]
    result = arr.slice(1,-2);
    console.log(result);//["jack", true]

    splice():用于删除数组中指定的元素,会影响原数组,将删除的元素返回

              /*        - 参数:
               *                  第一个,表示开始位置的索引
               *                  第二个,表示删除的数量
               *                  第三个及以后。。
               *                            可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边
               *        
               */
    var arr = [343,"jack", true, 45.3, false];                  
    var result = arr.splice(3,1,"Tom","Marry","Bob");                              
    console.log(arr);//[343, "jack", true, "Tom", "Marry", "Bob", false]
    console.log(result);//[45.3]
    var arr = [343,"jack", true, 45.3, false];                  
    var result = arr.splice(3,0,"Tom","Marry","Bob");                              
    console.log(arr);// [343, "jack", true, "Tom", "Marry", "Bob", 45.3, false]
    console.log(result);//[]

    去除数组中的元素

    //创建一个数组
    var arr = [1,2,3,2,2,1,3,4,2,5];
    
    //去除数组中重复的数字
    //获取数组中的每一个元素
    for(var i=0 ; i<arr.length ; i++){
              //console.log(arr[i]);
              /*获取当前元素后的所有元素*/
              for(var j=i+1 ; j<arr.length ; j++){
                        //console.log("---->"+arr[j]);
                        //判断两个元素的值是否相等
                        if(arr[i] == arr[j]){
                                  //如果相等则证明出现了重复的元素,则删除j对应的元素
                                  arr.splice(j,1);
                                  //当删除了当前j所在的元素以后,后边的元素会自动补位
                                  //此时将不会在比较这个元素吧,我需要在比较一次j所在位置的元素
                                  //使j自减
                                  j--;
                        }
              }
    }
    
    console.log(arr);

    concat()方法可以连接两个或者多个数组,并将新的数组返回,不会对原数组产生影响

    var arr1 = [1234,3454,5656,454];
    var arr2 = ["Tom","Jacky","Marry"];
    var arr3 = [true, false];
    var arr = arr1.concat(arr2,arr3);
    console.log(arr);//[1234, 3454, 5656, 454, "Tom", "Jacky", "Marry", true, false]
    console.log(arr1);//[1234, 3454, 5656, 454]
    console.log(arr2);//["Tom", "Jacky", "Marry"]
    console.log(arr3);//[true, false]

    join()   将一个数组转换成一个字符串,不会对原数组产生影响,在方法中指定一个字符串作为参数(连接符),如果不指定,默认是,,如果不想使用连接符,则用""

    var arr = ["Tom","Jacky","Marry"];
    console.log(arr);//["Tom", "Jacky", "Marry"]
    console.log(arr.join());//Tom,Jacky,Marry
    console.log(arr.join(""));//TomJackyMarry
    console.log(arr.join("##"));//Tom##Jacky##Marry

    reverse()数组反转,会改变原数组

    var arr = ["Tom","Jacky","Marry"];
    console.log(arr.reverse());// ["Marry", "Jacky", "Tom"]

    sort()  数组排序(按照Unicode进行排序),影响结果

    var arr = ["Tom","Jacky","Marry"];
    console.log(arr.sort());// ["Jacky", "Marry", "Tom"]
    arr = ["b","d","e","a","c"];
    console.log(arr.sort());//["a", "b", "c", "d", "e"]
    arr = [5,11,2,1,3,6,8,7];
    console.log(arr.sort());//[1, 11, 2, 3, 5, 6, 7, 8]

    浏览器根据回调函数决定元素的位置,如果返回值大于0,两数交换位置,如果返回值小于0,位置不变

    arr = [5,11,2,1,13,6,8,7];
                                  
    arr.sort(function(a,b){          
              //前边的大
             if(a > b){
                        return -1;
              }else if(a < b){
                        return 1;
              }else{
                        return 0;
              }         
              //升序排列
              //return a - b;        
              //降序排列
              return b - a;         
    });
    
    console.log(arr);

          

  • 相关阅读:
    es6语法快速上手(转载)
    width百分比
    利用switch case 来运行咱们结婚吧
    利用if else来运行咱们结婚吧
    利用if else 来计算车费
    利用switch case判断是今天的第多少天
    利用if else判断是否及格
    利用if,else判断输入的是不是一个正整数
    再练一遍猜拳
    用if else 判断是不是7的倍数等
  • 原文地址:https://www.cnblogs.com/lzb0803/p/9016898.html
Copyright © 2011-2022 走看看