zoukankan      html  css  js  c++  java
  • js学习笔记13----数组的操作

    1.数组的定义

      格式1:var arr=[1,2,3];

      格式2:var arr=new Array(1,2,3); //new可以省略

      注意:var arr=new Array(4);如果你里面只写了一个数字,代表arr的长度为4

    2.length属性的特性:不仅可以返回字符串的长度,还可以移除或者添加新项

      var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

      移除项示例:

      arr2.length=4;

      console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪"]

      增加项示例:

      arr2[arr2.length]='冰淇淋';

      console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸", "冰淇淋"]

      arr2[10]='冰淇淋';

      console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸",,,,,, "冰淇淋"],此时数组的长度为11

      清空数组的方法:

      方法1:arr.length=0; //方法较简单,字符串的length属性不可写!!!

      方法2:arr=[]; //处理效率更高

     
    3.数组添加内容的方法:

      var arr=[1,2,3];

      方法1:push():从后开始添加数据

      console.log(arr.push('aa')); //返回结果4,代表新的数组的长度

      console.log(arr);//返回结果[1,2,3,'aa']

      方法2:unshift():往前开始添加数据 

      console.log(arr.unshift('aa')); //返回结果4,代表新的数组的长度,IE7及以下不支持

      console.log(arr);//返回结果['aa',1,2,3,]

     
    4.数组去掉内容的方法

      var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

      方法1:pop():从后开始扔掉数据

      console.log(arr2.pop()); //返回‘牛肉丸’,即数组最后一项

      console.log(arr2);//返回结果["包子", "卤肉卷", "卤豆腐", "鸡爪"]

      方法2:shift():往前开始扔掉数据

      console.log(arr2.shift()); //返回‘包子’,即数组第一项

      console.log(arr2);//返回数组["卤肉卷", "卤豆腐", "鸡爪", "牛肉丸"]

     
    5.splice()方法:

      该方法可以同时实现删除,插入,替换的功能。始终会返回一个数组,数组包含了从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。

      删除:指定2个参数,即要删除的第一项位置和要删除的基数。

      插入:指定3个参数:起始位置、0和要插入的项。

      替换:指定3个参数:起始位置、要删除的项数和要插入的项。

      var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

      var removed = arr2.splice(0,2); 

      console.log(removed);  //返回"['包子','卤肉卷',]"

      console.log(arr2);    //返回"['卤豆腐','鸡爪','牛肉丸']"

      var removed = arr2.splice(1,0,"糖油粑粑","臭豆腐");

      console.log(removed);  //返回"[]"

      console.log(arr2);    //返回"['卤豆腐','糖油粑粑','臭豆腐','鸡爪','牛肉丸']"

       

      var removed = arr2.splice(2,1,"麻油猪血","酸辣粉");

      console.log(removed);  //返回"['臭豆腐']"

      console.log(arr2);    //返回"['卤豆腐','糖油粑粑','麻油猪血','酸辣粉',鸡爪','牛肉丸']"

    6.数组去重:
    var arr3 = [1,5,5,8,7,4,5];
    for(var i=0;i<arr3.length;i++){
        for(var j=i+1;j<arr3.length;j++){
            if(arr3[i] == arr3[j]){
                arr3.splice(j,1);
                j--;
            }
        }
    }
    console.log(arr3);//返回"[1, 5, 8, 7, 4]"
     
    7.重排序方法

      reverse():反转数组项的顺序

      var arr4 = [1,2,8,4,5,'bb','123',32];

      console.log(arr4.reverse()); //返回"[32, "123", "bb", 5, 4, 8, 2, 1]"

      sort():默认情况按升序排列数组,它比较的是字符串。此方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。

    //升序
    function ascCompare(val1 , val2){
        if(val1 < val2){
            return -1;
        }else if(val1 > val2){
            return 1;
        }else{
            return 0;
        }
    }
    //降序
    function descCompare(val1 , val2){
        if(val1 < val2){
            return 1;
        }else if(val1 > val2){
            return -1;
        }else{
            return 0;
        }
    }
    //对于数值类型可以用更简单的比较函数
    function numCompare(val1 , val2){
        return val1-val2; //升序
        //return val2-val1; 降序序
    }
    var arr6 = [1,2,8,4,5,32];
    console.log(arr6.sort(ascCompare)); //返回'[1, 2, 4, 5, 8, 32]'
    console.log(arr6.sort(descCompare)); //返回'[32, 8, 5, 4, 2, 1]'
    8.concat():

      数组的拼接传递给concat()方法可以是数组,也可以是字符串。

      var colors=['red','green','blue'];

      var colors2 = colors.concat("yellow",["back","brown"]);

      console.log(colors2); //返回'["red", "green", "blue", "yellow", "back", "brown"]'

  • 相关阅读:
    Android开发
    Android随笔
    Android开发
    宁波大学NBU计算机大三下册期末考试
    2021浙江省大学生程序设计竞赛D题 Shortest Path Query(最短路+思维)
    NWERC 2020A Atomic Energy(背包+思维)
    CF1454E Number of Simple Paths(容斥+基环树)
    CF549F(分治+启发式合并)
    HDU5293 Tree chain problem (LCA+树链剖分+线段树)
    HDU156 The more, The Better(dp+背包)
  • 原文地址:https://www.cnblogs.com/sese/p/6394618.html
Copyright © 2011-2022 走看看