数组Array基础知识

数组

数组的概念

  • 数组是值的有序集合
  • 数组中的每个值 称之为 元素
  • 每个元素可以是任意数据类型的值
  • 每个元素都有索引(下标)
  • 元素的索引从0开始,按照顺序递增。 元素最大的索引 2^32-2

创建数组

  • 直接量 []

      var arr=[];
      var arr=["string",234,true,function(){},demo,demo(),brr[]];
      数组的元素可以是任意类型
  • 构造函方式 new Array() 也可以省略new

       var arr=new Array();
      var arr=new Array(5);长度为5;
      var arr=new Array(1,3,"hello"); 直接传参

读写数组中的元素

  • 数组名[索引]

稀疏数组

  • js数组的索引是连续的
  • 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined

添加和删除 数组的元素

  • 添加数组元素
    • 指定索引来添加元素
    • 把数组长度当做新元素的索引 arr[arr.length] = value
    • 在数组的最后添加元素 push() arr.push()
    • 在数组的前面添加元素 unshift() arr.unshift()
    • 在数数组的任意位置添加元素 splice(index, 0, value)
  • 删除数组的元素
    • 改变数组的length属性 arr.length -= 1; arr.length -= 2
    • 删除最后面的一个元素 pop()
    • 删除数组的第一个元素 shift()
    • 删除指定位置的指定个数的元素 splice(index, length)
    • delete arr[2];删除元素(位置还在),使其变成undefined;

数组遍历

  • for 循环
  • for in

      for(var i in arr){
          console.log(arr[i]);
      }

多维数组

数组的方法

  • join([间隔符号]) 把数组的每个元素拼接成一个字符串 返回字符串
  • slice(start, end) 截取数组中的一部分, 返回一个新数组
  • concat(arr, arr....) 合并数组. 返回一个新数组
  • toString() 把数组转换为字符串
  • reverse() 翻转数组 副作用
  • sort() 排序 副作用
  • push() pop() 副作用
  • shift() unshift() 副作用

类数组对象

  • arguments
  • Elementcollection 元素的集合

       document.getELementsByTagName()
       element.getElementsByTagName()

作为数组的字符串

  • 字符串具有部分数组特性
  • 字符串也有length属性 获取字符串的长度
  • 也可以通过[索引值] 取出字符串中的一个字符

### 稀疏数组变为不稀疏

法一:
<script>
    function xiShu(a){
        var brr=[];
        console.log(arr);
        for(var i=0;i<arr.length;i++){
            if(arr[i]!=undefined){
                brr[brr.length]=arr[i]; 
            }
        }
        console.log(brr);
    }
        xiShu(arr=[0,1,2, ,4,5, , ,8]);
</script>

法二:

<script>
    console.log("");
    function xiShu(a){  
        console.log(arr);
        for(var i=0;i<arr.length;i++){
            if(arr[i]==undefined){
                // brr[brr.length]=arr[i];  
                arr.splice(i,1);
                i--;
            }
        }
        console.log(arr);
    }
    xiShu(arr=[0,1,2, ,4,5, , , ,8]);
</script>

数组去重

    <script>
    function quChong(arr){
        var arr;        
        for(var i=0;i<arr.length;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i]==arr[j]){
                    console.log("重复的数:"+arr[j]+ "它的位置:"+j);
                    i--;
                    //删除重复的数
                    arr.splice(j,1);            
                    //输出删除重复的数之后的数组
                    // console.log(brr);
                }               
            }
        }
        console.log(arr);
    }
    quChong(arr=[1,1,3,5,6,43,45,6,"nihao","pwl",7,6,7,45,45,45,"lw"]);
</script>

转载于:https://www.cnblogs.com/pangwl/p/7401154.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值