JS模块(三 数组)

JS模块(三 数组)

数组的定义

  • 简单的理解数组 我们将其当做一个用来装很多数据的袋子 当我们需要使用时 将数据从袋子里拿出来

JS数组定义的几种方式

  1. var arr=new Array();//给数组中的元素赋值。
    arr[0]=100;
    arr[1]=200;
    arr[2]=200;
    arr[3]=300;
    

    定义一个没有长度的空数组 没有元素 元素手动创建赋值

  2. var arr2=new Array(3);// 创建对象时可以指定数组的长度
    arr2[0]=10;
    arr2[1]=20;
    arr2[2]=30;
    arr2[3]=40;
    

    定义一个有长度的空数组 没有元素 元素手动创建赋值

  3. var arr3=new Array(200,300,500,1,300,500);
    

    定义一个有长度 有元素的数组

  4. var arr4=[20,30,20,5,3,6];
    

    常用的简便定义数组的方法

  5. 二维数组

    • var arr=new Array();
      var oneArr=new Array(10,20,30);
      var twoArr=new Array(40,50,60);
      arr[0]=oneArr;
      arr[1]=twoArr;
      

      定义一个数组arr 和两个存放元素的数组

      将oneArr赋给arr的第一个数组元素

      将twoArr赋给arr的第二个数组元素

    • var arr2=[[10,20,30],[40,50,60],[400,500,600]];
      

      直接进行嵌套定义

    数组的一些特点

    • JS中数组长度可以进行改变
    • 数组可以存储多种类型
    var arr=[100,3.14,false,"abc",new Object()];
    			var v=arr[arr.length-1];
    

    遍历数组

    • 一维数组
    //数组的遍历
    var arr=[20,30,50,30,600,200,100];
    for(var i=0;i<arr.length;i++){
    document.write(arr[i]);
    document.write("<br>");}
    //反向遍历
    for(var i=arr.length-1;i>=0;i--){
    document.write(arr[i]);
    document.write("<br>");}
    

    for循环来进行数组的遍历
    运行结果

    • 二维数组
    var arr2=[[10,20,30],[40,50,60],[400,500,600]];
    //遍历二维数组
    for(var i=0;i<arr2.length;i++){
    for(var j=0;j<arr2[i].length;j++){
    alert(arr2[i][j]);}}
    
    

    嵌套for循环来进行数组的遍历
    ![运行结果](https://img-blog.csdnimg.cn/20200712152907449.png)

数组的方法

  1. 合并数组:将多个数组的元素统一放到一个数组当中

    var arr3=arr.concat(arr2);
    
    

    将arr与arr2的元素放到arr3中

运行结果
2. 将数组元素拼接成一个整体的字符串

var str=arr.join(""); 

字符串str用来接收arr的数组元素

运行结果
3. 往数组中添加元素

arr.push(10);arr.push(20);arr.push(30);

  1. 删除并返回数组的第一个元素

    var num2=arr.shift();
    
    
  2. 删除数组中的最后一个元素,返回的就是那个被删除的元素

    var num=arr.pop();
    
    
  3. 向数组的开头添加一个或更多元素,并返回新的长度。

    arr.unshift(40);
    
    

运行结果运行结果运行结果
运行结果运行结果

  1. 反转数组中的元素

    arr.reverse();//
    
    

    运行结果

  2. 把数组中的元素,按照从小到大排列

    var arr = [20, 50, 1, 20, 36, 90, 10, 1, 5];
    var bjq = function(a, b) {
    return a-b;}
    arr.sort(bjq);
    
    

运行结果

  • 按照元素的大小来排列,需要传入比较器
  • 空参的排序方式是按照字典顺序来排序的
  1. 根据起始索引和结束索引,来截取数组中的一段元素,放到一个新的数组中

    var newArr = arr.slice(0, 4);
    
    

运行结果

  1. 删除元素,并向数组添加新元素

    //从1索引处开始,删除3个元素。
    arr2.splice(1,3);
    //从1索引处,替换两个元素,替换为500
    //arr3.splice(1,2,500);
    
    
    • index 必需。规定从何处添加/删除元素
    • 该参数是开始插入和(或)删除的数组元素的下标,必须是数字
    • howmany 必需。规定应该删除多少元素。必须是数字,但可以是 “0”
    • 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素
    • element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入
    • elementX 可选。可向数组添加若干元素

ES6中关于数组的方法

  • every() 检测数值元素的每个元素是否都符合条件

    var arr = [32, 33, 16, 40];
    //判断数组中的元素不是是都大于30;
    var isOk = function(ele) {
    return ele > 10;}
    var flag = arr.every(isOk);
    alert(flag);
    //匿名函数,通常作为参数传递
    arr.every(function(ele) {
    return ele > 10;})
    
    

运行结果

  • filter() 检测数值元素,并返回符合条件所有元素的数组

  • var arr=["王五","王老虎","王百万","赵六","李四","张三"];
    var newArr=arr.filter(function(ele){
    if(ele.startsWith("王")){
    return true;else{
    return false; //返回true符合条件,就过滤到新数组中,false不符合条件,不会过滤到新数组中。}});
    alert(newArr);		
    
    

运行结果

  • forEach() 数组每个元素都执行一次回调函数

    var arr=[20,30,50,60,90];
    arr.forEach(function(ele,index){
    alert(ele);});
    
    
  • includes() 判断一个数组是否包含一个指定的值

    var v=arr.includes(500);
    alert(v);
    
    

运行结果

  • reduce()

    var arr=[10,20,30,60,30,50];
    var sum=arr.reduce(function(total,currentValue){
    return total+currentValue;},0); //0是个初始值 可选
    alert(sum);

    1. total 必需 初始值, 或者计算结束后的返回值
    2. currentValue 必需 当前元素
    3. currentIndex 可选 当前元素的索引
    4. arr 可选 当前元素所属的数组对象
      运行结果JS待续…

猜你喜欢

转载自blog.csdn.net/cx9977/article/details/107300418