数组

简介

数组对象用来在单独的变量名中存储一系列的值。
并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的ID,以便它可以很容易地被访问到

  • 在一个数组中可以有不同的便力量类型,可以包括对象元素、函数、数组

创建数组

创建数组有三种方式

// 字面量的方式
    var arr1 = [1,2,3];
    //构造函数的方式
    var arr2 = new Array();
    // 简洁的方式
    var arr3 = new Array(1,2,3);
    console.log(arr1);[1,2,3]
    console.log(arr2);[]
    console.log(arr3);[1,2,3]

访问数组中的元素

通过指定数组名以及索引号,可以访问数组中的某个特定的元素。
数组的索引号是从0开始的。

   console.log(arr1[0]);//1

**数组不仅可以保存基本数据类型,还可以保存函数,对象,数组。

var arr = [function () {
        console.log(1);
      }, {
        name: '张浩',
        age: 19
      },
      [1, 2, 0]
    ]

数组的属性和方法

属性

  • length:最常用的属性,返回数组中元素的个数。

方法
pop():在将数组中的最后一个元素删除,并返回这个元素,改变原数组。

   var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    console.log(arr1.pop());//10
    console.log();// [1, 2, 3, 4, 5, 6, 7, 8, 9];

push():在数组的后面添加一个或多个元素。返回添加后的数组的长度。改变原数组。

  var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  console.log(arr1.push(10, 11, 12)); //12
  console.log(arr1); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12];

shift():在数组的前面删除一个元素,返回删除元素。改变原数组。

    var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    console.log(arr1.shift()); //1
    console.log(arr1); //[2, 3, 4, 5, 6, 7, 8, 9, 10];

unshift():在数组的开头添加一个或者多个元素,返回添加以后的数组的长度,改变原数组。

    var arr1 = [1, 2, 3, 6, 7, 8, 9, 10];
    console.log(arr1.unshift(0,-1,-2)); //11
    console.log(arr1); //[-2,-1,0,2, 3, 6, 7, 8, 9, 10];
 // contact链接一个或者多个数组。返回新数组,不改变原数组
    arr1 = [1, 2, 3];
    arr2 = [4, 5, 6];
    console.log(arr1.concat(arr2)); // [1, 2, 3, 4, 5, 6]
    console.log(arr1, arr2); // [1, 2, 3] , [4, 5, 6]
    // join()数组转换成字符串
    console.log(arr1.join()); //1,2,3
    console.log(arr1.join('')); //123
    console.log(arr1.join('&')); //1&2&3
    console.log(arr1.join(' ')); //1 2 3
    console.log(arr1, arr2); // [1, 2, 3] , [4, 5, 6]
    // toString()将数组转换成字符串
    console.log(arr1.toString()); //1,2,3
    console.log(arr1.toString(2)); //1,2,3
    console.log(arr1, arr2); // [1, 2, 3] , [4, 5, 6]
    // indexOf()查找元素的下标值
    console.log(arr1.indexOf(2)); //1
    console.log(arr1.indexOf(5)); //-1
    console.log(arr1, arr2); // [1, 2, 3] , [4, 5, 6]
    // includes()检测数组是否包含元素
    console.log(arr1.includes(1)); // true
    console.log(arr1.includes(5)); // false
    // lastIndexOf()从后往前查,返回元素的下标
    console.log(arr1.lastIndexOf(3)); //2
    console.log(arr1.lastIndexOf(5)); //-1
    console.log(arr1); // [1, 2, 3]
    // slice()截取数组,返回截取元素组成的新字符串
    var arr3 = [2, 8, 6, 4, 9, 62, 69, 48, 21, 10];
    console.log(arr3.slice(2)); //[6, 4, 9, 62, 69, 48, 21, 10]
    console.log(arr3.slice(-2)); // [21, 10]
    console.log(arr3.slice(-7, 4)); //[4]
    console.log(arr3.slice(2, -4)); // [6, 4, 9, 62]
    console.log(arr3.slice(-100, -4)); // [2, 8, 6, 4, 9, 62]
    console.log(arr3);
    // splice()可以对数组进行增删改,原数组会被改变
    arr4 = [5, 6, 8, 1, 3];
    // console.log(arr4.splice(2));//[8, 1, 3]
    // console.log(arr4.splice(-2));// [1, 3]
    // console.log(arr4.splice(-20));//  [5, 6, 8, 1, 3]
    // console.log(arr4.splice(0,2));// [5, 6]
    // console.log(arr4.splice(0,-2));// []
    // console.log(arr4.splice(-7,2));// [5,6]
    // console.log(arr4.splice(-7, 2, 1, 2)); //[5, 6]
    // console.log(arr4); //[1, 2, 8, 1, 3]
    // reverse()反转数组的元素顺序,改变原数组
    var arr5 = [1, 5, 3, 8, 6];
    console.log(arr5.reverse());
    console.log(arr5);
    // sort()对数组及逆行排序,改变原数组。
    var arr6 = [1, 5, 6, 7, 2, 3];
    console.log(arr6.sort(function (a, b) {
      return a - b
    }));
    console.log(arr6);
// 数组的遍历方法
    // 1
    var arr1 = [20, 63, 45, 98, 20, 1];
    // var temp = arr1.forEach(function (value, index, arr) {
    //   console.log(value);
    //   console.log(index);
    //   console.log(arr);

    // });
    // console.log(temp);// undefined

    // 2 
    // for (let i = 0; i < arr1.length; i++) {
    //   console.log(arr1[i]);
    // }

    // 3 
    // for (const index in arr1) {
    //   console.log(index);
    // }

    // 4 
    // for (const value of arr1) {
    //   console.log(value);
    // }

    // 5 some方法来判断数组中是否有满足条件的元素,返回一个布尔值,一旦遇到true就会停止遍历
    // var temp = arr1.some(function (value, index, arr) {
    //   console.log(value);
    //   console.log(index);
    //   console.log(arr);
    //   if (value >= 89) {
    //     return false;
    //   }
    // })
    // console.log(temp);

    // 6 every方法来检测数组中是否所有的值都满足条件,回调函数必须返回一个布尔值来告诉every是否满足条件。一旦接收到返回false就会停止遍历
    // var temp = arr1.every(function (value, index, arr) {
    //   console.log(value);
    //   console.log(index);
    //   console.log(arr);
    //   if (value >= 0) {
    //     return false;
    //   }
    // })
    // console.log(temp);

    // 7 filter方法过滤所有满足条件的元素,返回他们组成的数组,filter方法最后还接受一个this Value的值,作为在回调函数中this的值.
    var temp = arr1.filter(function (value, index, arr) {
      console.log(value, index, arr);
      console.log(this);
      
      if (value >= 45) {
        return true;
      }
    },[1,2]);
    console.log(temp);

    // 8 reduce方法将数组元素累计为一个值,从左到右
    // var temp = arr1.reduce(function (totale, value, index_1, arr) {
    //   console.log(totale);
    //   console.log(value);
    //   console.log(index_1);
    //   console.log(arr);
    //   return totale += value
    // }, 0);
    // console.log(temp);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值