zoukankan      html  css  js  c++  java
  • 关于数组(Array)的创建和方法的使用

    数组是什么东西?

    数组可以说是一序列有序元素的集合。

     

    怎么创建数组(一维数组)?

    new Array();

    let arr = new Array();

    1

    创建了一个长度为0的数组

    new Array(size);

    let arr = new Array(10);

    2

    创建了一个长度为10,内容为空的数组

    new Array(ele0,ele1,ele2)

    let arr = new Array(10,10,10,10,10);

    3

    创建了一个长度为5,内容为5个10的数组

    上面的是利用构造函数实例化一个数组对象方式,

    下面是直接定义一个数组

    let arr = [1,2,3,4,5,6]

    4

    两种方式都可以创建数组

    数组的方法:

    1. concat()  连接两个或更多的数组,并返回结果,返回一个深拷贝数组。

    语法:arrayObject.concat(arrayX,arrayX,......,arrayX)

    let arr1 = [1,2,3];
    let arr2 = [4,5,6];
    let arr3 = [7,8,9];
    console.log(arr1.concat(arr2,arr3));

    5

    除了连接数组,是否可以连接元素呢

    let arr3 = [7,8,9];
    console.log(arr1.concat(1,2,3,4,5);

    6

    看来也是可以的

    那还有一个问题,这个方法会对原数组产生影响吗?

        let arr1 = [1,2,3];
         let arr2 = [4,5,6];
         let arr3 = [7,8,9];
         arr1.concat(arr2,arr3);
         console.log(arr1,arr2,arr3);

    7

    答案是不会

    2. join()   把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

    语法:arrayObject.join(separator)

        let arr1 = [1,2,3];
         console.log(arr1.join("&"));

    8

    如果方法后面的参数没写的话,会自动默认分隔符为逗号。

    3. pop() 删除并返回数组的最后一个元素

    语法:arrayObject.pop()

        let arr1 = [1,2,3];
         console.log(arr1.pop());
         console.log(arr1);

    9

    4. push() 向数组的末尾添加一个或更多元素,并返回新的长度。

    语法:arrayObject.push(newelement1,newelement2,....,newelementX)

        let arr1 = [1,2,3];
         console.log(arr1.push(4,5,6));
         console.log(arr1.push([4,5,6]));
         console.log(arr1);

    10

    添加元素和数组都是直接追加的,添加数组会产生一个二维数组

    5. reverse() 颠倒数组中元素的顺序,并返回一个浅拷贝数组,把原数组实体的指针返回了

    语法:arrayObject.reverse()

        let arr1 = [1,2,3];

        let arr2 = arr1.reverse();   // 当你更改arr2数组的值,arr1也会改变
         console.log(arr2 );   
         console.log(arr1);   

    12

    6.  shift() 删除并返回数组的第一个元素

    语法:arrayObject.shift()

        let arr1 = [1,2,3];
         console.log(arr1.shift());   
         console.log(arr1);   

    13

    7. slice() 从某个已有的数组返回选定的元素,左开右闭

    语法: arrayObject.slice(start,end)

        let arr1 = [1,2,3,4,5,6];
         console.log(arr1.slice(2,4));   
         console.log(arr1);   

    14

    8. sort() 对数组的元素进行排序(排序顺序是根据字符串UniCode码),并返回一个浅拷贝数组

    语法:arrayObject.sort(sortby)

    sortby参数   可选。规定排序顺序。必须是函数。

        let arr1 = [1,6,2,1,5,6];
         let arr2 = ["s","a","c","z","q",1];
         console.log(arr1.sort());
         console.log(arr2.sort());   
         console.log(arr1,arr2);   

    15

        function sortArr(a,b){
             return a - b;
         }
         let arr1 = ["1","6","2","1","1000","100"];
         let arr2 = ["1","6","2","1","1000","100"];
         console.log(arr1.sort());
         console.log(arr2.sort(sortArr));   

    16

    如果需要对数组中对象的属性值进行排序的话,就需要在原来的基础上加一个属性值了(a,b是数组中的元素,a>b是顺序,a<b是倒叙,等于是原数组)

    let arr1 =
    [
         {"num":1},
         {"num":3},
         {"num":4},
         {"num":2},
         {"num":1},
         {"num":5},

    ]
    let arr2 =
    [
         {"num":1},
         {"num":3},
         {"num":4},
         {"num":2},
         {"num":1},
         {"num":5},

    ]
    function sortArr1(a,b){
         return a - b
    }
    function sortArr2(a,b){
         let value1 = a.num;
         let value2 = b.num;
         if (value1 > value2) {
             return 1;
         }else if(value1 < value2){
             return -1;
         }else{
             return 0;
         }
    }
    console.log(arr1.sort(sortArr1));
    console.log(arr2.sort(sortArr2));   

    17                                                                                                                               

    9. splice() 删除元素,并向数组添加新元素,并返回一个删除部分的深拷贝数组(重新开辟一个内存空间存放得到的数组)

    语法:arrayObject.splice(index,howmany,item1,.....,itemX)   index从哪里开始删除  howmany删除的个数,items是需要添加的新元素

    let arr = [7,8,9,1,2,3];
    console.log(arr.splice(0,2,[1,2]));
    console.log(arr);

    18

    可以看到删除后会以数组的形式返回一个被删除的部分,添加的部分会直接插入被删部位

    10. toSource() 返回该对象的源代码。

    语法:object.toSource()

    了解一下即可,只有Gecko 核心的浏览器(比如 Firefox)支持该方法

    11.toString()  把数组(不局限于数组)转换为字符串,并返回结果。

    let arr1 = [7,8,9,1,2,3];
    let num = 1;
    console.log(arr1.toString());
    console.log(num.toString());

    19

    黑色字体表示是字符串,蓝色表示数字

    12. toLocaleString() 把数组转换为本地(基于你的计算机环境)字符串,并返回结果。

    语法:arrayObject.toLocaleString()

    let arr1 = [7,8,9,1,2,3];
    let obj = 111111;
    console.log(arr1.toLocaleString());
    console.log(arr1);
    console.log(obj.toLocaleString());
    console.log(obj);

    let date = new Date();
    console.log(date.toLocaleString());
    console.log(date.toString());
    console.log(date);

    20

    toLocaleString 转换日期时,将日期转换成我们熟悉的本地时间格式(以字符串形式),toString仅仅是将date转换成字符串

    13. unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

    语法:arrayObject.unshift(newelement1,newelement2,....,newelementX)

    let arr = [7,8,9,1,2,3];
    console.log(arr.unshift(555,666,[111,2,22, ,]));   //返回的是新数组的长度
    console.log(arr);

    21

    14. valueOf() 返回数组对象的原始值

    语法:arrayObject.valueOf()

    let arr = [7,8,9,1,2,3];
    console.log(arr.valueOf());
    console.log(arr);

    22

     15. map()  循环一个数组,如果有返回内容的话,会新开辟一个空间存储(深拷贝)

      语法: 

     ```

    var new_array = arr.map(function callback(currentValue[, index[, array]]) {
     // Return element for new_array 
    }[, thisArg])

     ```

     16. from() 将伪数组对象和对象转换成数组

     17. of() 将一组值,转换为数组。

     18. copyWithin()

     19. find()

     20. findIndex(),indexOf()

     21. fill()

     22. entries, keys, values

     23. includes()

     24. flat, flatMap

    扩展一个字符串转换数组方法的:

    split() 把一个字符串分割成字符串数组。

    语法:stringObject.split(separator,howmany)

    let str1 = "I,am,your,father";
    let str2 = "Iamyourfather";
    console.log(str1.split(",",3));
    console.log(str1);
    console.log(str2.split("",2));

    24

    NO MAN IS A ISLAND
  • 相关阅读:
    函数
    registry搭建及镜像管理-harbor
    用户输入和while 循环
    dockerfile
    字典,set
    if 语句
    alpine操作
    循环:列表,元组
    列表
    docker跨主机通信-overlay
  • 原文地址:https://www.cnblogs.com/nomanisaisland/p/11300297.html
Copyright © 2011-2022 走看看