JavaScript 数组和对象

数组

  • 数组:一组数据的集合,数组的每一个数据叫做一个元素

  • 数组元素可以是任何类型,同一个数组中的不同元素可能是对象或数组

  • 每个数组都具有一个length属性,通过该属性可以获取数组长度,并且可以给一个数组length赋值定义长度

  • 数组中每个元素在数组中有一个位置,以数字表示,称为索引(下标)

  • 索引从0开始排列,[0]表示第一个数据,以此类推

  • 数组的数据类型是一个对象,其实就是个加了数字索引和length属性的特殊对象


数组创建方法

隐式方法

   var arr = ["梨子", "橙子", "橘子"];
   var arr2 = [1, "小张", true, ["OliGit", 2], {
   }];
   var arr3 = [];

直接实例化,通过构造函数Array()创造

   // 1.直接把数组元素写到括号里
   var arr = new Array("OliGit", 12, "哈哈");

   // 2.创建数组并给数组元素赋值
   var arr2 = new Array();
   arr2[0] = "haha";
   arr2[1] = "heiha";
   arr2[2] = "heihei";

   // 3.规定数组初始的长度,并给数组元素赋值;数组长度动态调整
   var arr3 = new Array(3);
   arr3[0] = "haha";
   arr3[1] = "heiha";
   arr3[2] = "heihei";
   arr3[3] = "hihihi";
   arr3[4] = "enenen";

数组基本操作

  • arr.toString():将数组转换为字符串,保留逗号
  • arr.join(“分隔符”):将数组转成一个字符串,原来的数组会保留;参数为分隔符,省略的话则用默认逗号作为分隔符
  • Array.from(str):将伪数组转成数组,只要有length属性的就可以转成数组
  • arr.pop():移除数组末尾最后一项,减少数组的length值,然后返回移除的元素,而且会直接修改原数组
  • arr.push():用于向数组的末尾添加一个或多个元素,并返回修改后数组的长度,而且会直接修改原数组
  • arr.shift():删除数组开头第一项,减少数组的length值,然后返回移除的元素;而且会直接修改原数组
  • arr.unshift():用于向数组的开头添加一个或多个元素,并返回修改后数组的长度,而且会直接修改原数组
  • arr.splice():实现删除,插入,替换,截取,返回值为截取的数组元素,而且会直接修改原数组
    a、参数一:起始位置索引
    b、参数二:截取元素个数,如果是插入元素即为0
    c、参数三:插入的元素(可选),可以同时插入多个元素
  • arr.slice(开始下标,结束下标):截取指定下标的数组或字符串元素,返回截取的数组元素,不会修改原数组
    a、如果省略结束下标,则截取后面所有元素
    b、截取不包含结束下标的元素
    c、可以为负值
  • arr.indexOf():查找指定元素的下标,从前往后查找;若有重复,则返回第一个查到的下标;若不存在,则返回-1
  • arr.lastIndexOf():查找指定元素的下标,从后往前查找;若有重复,则返回第一个查到的下标;若不存在,则返回-1
  • arr.concat():合并两个或多个数组;返回一个新的数组,不会修改原数组,也可以在concat方法中直接添加元素
  • arr.reverse():反转数组元素的顺序,会修改原数组;返回值并不是排序后的数组,而是数组的引用
  • arr.sort(比较函数):用于对数组的元素进行排序
    a、默认:无参数情况下,按升序排序数组项,即最小的值位于最前面,最大的值排在最后面;会修改原数组;会转成字符串再比较,并从第1个字符进行比较
    b、参数为比较函数,规定数组排序顺序;比较函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字
    c、比较函数应该有两个参数 a 和 b,其返回值如下:
    (1)、若a 小于 b,在排序后的数组中 a 应该出现在b 之前,则返回一个小于0的值
    (2)、若a 等于 b,则返回0
    (3)、若a 大于 b,则返回一个大于0的值
	<script>
        // 升序排列
        function asc(a, b){
    
            if(a<b){
    
                return -1;
            }else if(a>b){
    
                return 1;
            }else{
    
                return 0;
            };
        };
        // 降序排列
        function des(a, b){
    
            if(a<b){
    
                return 1;
            }else if(a>b){
    
                return -1;
            }else{
    
                return 0;
            };
        }
        var arr = [12, 1, 35, 3, 9, 34];

        var b = arr.sort(des);

        alert(arr);
        alert(b);
	</script>
  • arr.filter(过滤函数):把数组中的某些元素过滤掉,然后返回剩下的元素,接收的是一个回调函数;数组中的每一项运行给定函数,返回满足过滤条件组成的新数组,不会修改原数组
    <script>
        function guolv(x){
    
            return x>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值