• js 数组


    数组(Array)

    数组也是一个对象,是一个用来存储数据的对象和Object类似,但是它的存储效率比普通对象要高
    数组中保存的内容我们称为元素
    数组使用索引(index)来操作元素
    索引指由0开始的整数

    数组的操作:

    创建数组

    var arr = new Array(12,48,[1]);  
    var arr = [12,48,[1]];  
    

    向数组中添加元素
    语法;
    数组对象[索引] = 值;

    arr[0] = 123;  
    arr[1] = "hello";  
    

    创建数组时直接添加元素
    语法:

     var arr = [元素1,元素2....元素N]; 
    

    例子:

     var arr = [123,"hello",true,null];  
    

    获取和修改数组的长度
    使用length属性来操作数组的长度
    获取长度:
    数组.length
    length获取到的是数组的最大索引+1
    对于连续的数组,length获取到的就是数组中元素的个数
    修改数组的长度
    数组.length = 新长度
    如果修改后的length大于原长度,则多出的部分会空出来
    如果修改后的length小于原长度,则原数组中多出的元素会被删除
    向数组的最后添加元素
    数组[数组.length] = 值;

    数组的方法

    functionName function usage
    push() 用来向数组的末尾添加一个或多个元素,并返回数组新的长度 语法:数组.push(元素1,元素2,元素N)pop()
    pop() 用来删除数组的最后一个元素,并返回被删除的元素
    unshift() 向数组的开头添加一个或多个元素,并返回数组的新的长度
    shift() 删除数组的开头的一个元素,并返回被删除的元素
    reverse() 可以用来反转一个数组,它会对原数组产生影响
    concat() 可以连接两个或多个数组 或 新元素,它不会影响原数组,而是新数组作为返回值返回 var re = arr1.concat(arr2,arr3,1,"2");
    flat() 实现数组扁平化,将多维转为1维,返回新数组 语法:arr.flat(depth) depth是深度

    slice(sart,[end])

    可以从一个数组中截取指定的元素
    该方法不会影响原数组,而是将截取到的内容封装为一个新的数组并返回
    参数:

    1. 截取开始位置的索引(包括开始位置)
    2. 截取结束位置的索引(不包括结束位置
      第二个参数可以省略不写,如果不写则一直截取到最后

    参数可以传递一个负值,如果是负值,则从后往前数

    splice()

    可以用来删除数组中指定元素,并使用新的元素替换,会影响原数组
    该方法会将删除的元素封装到新数组中返回
    参数:

    1. 删除开始位置的索引
    2. 删除的个数
    3. 三个及以后,都是替换的元素,这些元素将会插入到开始位置索引的前边

    splice() 方法 可用于3 个功能:

    let arr = [0,1,2,3,4,5]
    
    // 删除元素
    let res = arr.splice(4,2);	// [4,5] arr[0,1,2,3]
    
    // 替换元素
    let res = arr.splice(4,2, 1,2,3);	// [4,5] arr[0,1,2,3,1,2,3]
    
    // 插入元素
    let res = arr.splice(4,0, 1,2,3);	// [] arr[0,1,2,3,1,2,3,4,5]
    

    join([splitor])

    可以将一个数组转换为一个字符串
    参数:
    需要一个字符串作为参数,这个字符串将会作为连接符来连接数组中的元素
    如果不指定连接符则默认使用 ","

    let arr = [1,2,3];
    let res = arr.join("-"); // "1-2-3"
    

    sort()

    可以对一个数组中的内容进行排序,默认是按照Unicode编码进行排序,即便是纯数字
    调用以后,会直接修改原数组
    可以自己指定排序的规则,需要一个回调函数作为参数:

    我们可以自己来指定排序的规则
    我们可以在sort()添加一个回调函数,来指定排序规则,
    回调函数中需要定义两个形参,
    浏览器将会分别使用数组中的元素作为实参去调用回调函数
    使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边

    • 浏览器会根据回调函数的返回值来决定元素的顺序,
      如果返回一个大于0的值,则元素会交换位置
      如果返回一个小于0的值,则元素位置不变
      如果返回一个0,则认为两个元素相等,也不交换位置

    • 如果需要升序排列,则返回 a-b
      如果需要降序排列,则返回 b-a

    let a = [1,16,9,4,2,7,6];
    a.sort(function(a,b){
        // 升序
        return a - b;
        // 降序
        // return b - a;
    
        // 注意:不能用 > < 去进行比较,因为sort是按Unicode来比较的,所以需要 - 来隐式转换为数字
    });
    

    遍历数组

    遍历数组就是将数组中元素都获取到
    一般情况我们都是使用for循环来遍历数组

    for(var i=0 ; i<数组.length ; i++){  
        //数组[i]  
    }  
    

    forEach()

    使用 forEach() 方法来遍历数组(不兼容IE8)

    arr.forEach(function(value, index, obj){  
      // 回调函数的3个形参不一定都写上
    });
    

    forEach()方法需要一个回调函数作为参数,
    数组中有几个元素,回调函数就会被调用几次,
    每次调用时,都会将遍历到的信息以实参的形式传递进来,
    我们可以定义形参来获取这些信息。

    1. value:正在遍历的元素
    2. index:正在遍历元素的索引
    3. obj:被遍历对象
  • 相关阅读:
    FineBI与power BI,一个是国外风生水起的微软巨头,一个是方兴未艾的国产BI厂商领导者
    Linux下的crontab定时执行任务命令详解举例
    手把手教你搭建SSH框架(Eclipse版)
    一、连接池的定义
    centos安装sftp服务win搭建 sftp 服务器
    前往阿里云的企业优惠活动页面
    世界可能是思想最为混乱的时候,无论你说什么
    python面向对象编程class1
    Python 文件I/O 文件读写模式r,r+,w,w+,a,a+的区别
    Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里
  • 原文地址:https://www.cnblogs.com/Liwker/p/14368842.html
Copyright © 2020-2023  润新知