JavaScript数组基础知识:

数组:内存中一块连续的存储单元,这些存储单元具有共同的名称、不同的索引(下标)

一、数组的声明:

(1)使用数组字面量:[ ]

          eg : let a = [ ]  //声明一个空数组;

   (2)  使用Array对象声明数组:

           eg :let  a  = new Array ( )声明一个空数组;

二、数组的属性:

length 表示数组元素的个数(数组的单元个数)

数组名.length

(1)、数组元素的索引:

从0开始到数组的单元个数减1

(2)、数组元素的访问:

数组名[索引]

三、数组的遍历:

不重复的访问数组的每个元素

(1)使用for循环遍历:

(2)使用for...in循环:

for(index in 数组名){

循环体语句

}

index:表示的是数组元素的索引

(3)使用for...of循环:

for( value of 数组名){

循环体语句

}

value:表示数组元素

(4)forEach循环遍历:

数组名.forEach(function(value,index){

函数体语句

})

value:表示数组元素

index:数组元素的下标

数组元素的下标:数组元素在数组中的位置编号(从0开始到数组的长度减1)

(5)使用map函数遍历数组:

实际是对数组的过滤。返回一个新的数组,原数组不变

let 新数组名 = 原数组名.map(function(item){ //item表示数组元素

函数体语句

})

四、数组的排序:

冒泡排序:

     数据两两比较,如果发现存在大小关系,就进行交换。

五、数组的常用方法(内置方法:直接使用,只需按要求传递对应的参数)

1、join(连接字符):作用是将数组中的元素通过给定的连接字符连成一个字符串

 var arr1 = [1,3,5,6,7,9,0];
        var arr2 = arr1.join(",");//用','号连接成一个字符串
        console.log(arr2);//1,3,5,6,7,9,0 

2、push(值/变量):从数组的末尾向数组添加元素

var arr1 = [1,3,5,6,7,9,0];
        arr1.push(10);
        console.log(arr1);//[1,3,5,6,7,9,0,10];

3、pop():从数组的末尾删除元素,一次只删除一个,返回的是被删除的元素。无需传参

 var arr1 = [1,3,5,6,7,9,0];
        var arr2 = arr1.pop();
        console.log("删除的元素为"+arr2);//0
        console.log("删除元素后数组为"+arr1);//1,3,5,6,7,9

4、shift():从数组的首部删除元素

 var arr1 = [1,3,5,6,7,9,0];
        var arr2 = arr1.shift();
        console.log("删除的元素为"+arr2);//1
        console.log("删除元素后数组为"+arr1);//3,5,6,7,9,0

5、unshift(值/变量):从数组的首部插入元素

  // 插入值
        var arr1 = [1,3,5,6,7,9,0];
        arr1.unshift(11);
        console.log("插入元素后数组为"+arr1);//11,1,3,5,6,7,9,0
        // 插入变量
        let i=10
        var arr1 = [1,3,5,6,7,9,0];
        arr1.unshift(i);
        console.log("插入元素后数组为"+arr1);//10,1,3,5,6,7,9,0

6、sort():排序函数。默认的是从小到大。若需要降序排序,需要自己写比较函数。它是在原数组上排序

// 用法一:
         var arr1 = [1,3,5,6,7,9,0];
         arr1.sort();
         console.log(arr1);//0,1,3,5,6,7,9
// 用法二:
         var arr1 = [1,3,5,6,7,9,0];
         var arr2 = arr1.sort(function(a,b){
             return a-b;//默认升序:从小到大  降序:b-a从大到小
         })
         console.log(arr2);//0,1,3,5,6,7,9

7、reverse():将数组元素颠倒顺序

 var arr1 = [1,3,5,6,7,9,0];
        arr1.reverse();
        console.log(arr1);//[0, 9, 7, 6, 5, 3, 1]

8、concat():连接两个或多个数组

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

9、slice():切片函数:从原数组中截取部分元素组成新的数组。在截取时需要指定开始位置(开始下标)和结束位置(结束下标)

var arr = [1,3,5,7,9,11]

var a1 = arr.slice(1) //'1'是下标,表示从下标为1的位置开始到数组末尾全部截取

 console.log(a1)

 var a2 = arr.slice(1,3) //截取下标1~3之间的元素,包含下标为1的元素,不包含下标为3的元素

 console.log(a2)

 var a3 = arr.slice(1,-2) //等价于slice(1,3),-2不是下标,表示倒数第二个元素

 console.log(a3)

 var a4 = arr.slice(-4,-2) //截取倒数第四个元素~倒数倒数第二个元素之间的元素

 console.log(a4)

10、splice():可以实现对数组元素的插入、删除和替换。

(1)删除元素:

splice(参数1,参数2):返回的删除的元素。第一个参数代表下标,第二个参数表示删除的项数。

var a5 = arr.splice(1,3) //删除从下标1开始的连续3个元素

console.log(a5)

console.log(arr)

(2)替换/插入元素:

       splice(参数1,参数2,参数3):

       参数1:表示替换位置

       参数2:表示项数(非零为替换,0表示插入)

       参数3:用于替换的新值

var arr = [1,3,5,7,9,11]
arr.splice(1,1,89) //替换
arr.splice(1,0,78) //插入
console.log(arr)

11、indexOf(元素):从左向右查找元素的位置。返回元素在数组中的下标(索引),返回-1表示没有找到

var arr = [10,25,33,11,89]
var index1 = arr.indexOf(12) //从左往右查找,返回找到的第一个12的下标
console.log(index1)

12、lastIndexOf(元素):从右向左查找元素的位置。返回元素在数组中的下标(索引),返回-1表示没有找到

var arr = [12,25,33,12,89]
var last_index = arr.lastIndexOf(12)
console.log(last_index)

13、filter(function(value,index) {

              函数体语句

})

可以实现对数组元素的"过滤",返回的元素构成一个新的数组

var arr = [1,2,3,4,5,6,7,8,9,10]
var temp = arr.filter(function(value,index){ //value:表示数组元素,index:表示数组元素的下标
      return  index % 3==0 || value>=8 //返回下标对3取余等于的元素
})
console.log(temp)

14、fill(值/变量):用给定的值或变量填充数组

var arr = new Array(5)
arr.fill(1) //数组的5个单元中都是1
console.log(arr)

15、every(function(value) { // 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回 true

             return 条件表达式

})

var arr = [1,2,3,4,15,6,7,8,9,10]
var flag = arr.every(function(value){  //参数value代表数组元素
            return value <=10   //若数组中每个元素都小于等于10,则返回true,否则返回false
})
console.log(flag)

16、includes() :判断一个数组中是否包含一个指定的值

var arr = [45,78,89,55,46,31]
var flag = arr.includes(89) //判断arr数组中是否包含89,若有返回true,没有就返回false

var flag1 = arr.includes(89,3)//从下标为3的元素开始查找,若有返回true,没有就返回false
console.log(flag1)

17、findIndex(function(value){ //返回符合条件的元素的索引(下标)

                     return 条件表达式

   }):

//已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的
var arr = [12,23,26,45,58,60]
        var x = 55
        var insert_index = arr.findIndex(function(value){ //value:表示数组元素
            return value>=x   //返回数组中第一个大于x的元素的下标
        })
        arr.splice(insert_index,0,x)
        console.log(arr)

六、数组总结:

(1)数组的作用:是一种数据的存储结构。用来存储程序中的数据

(2)数组的定义方式:

          a、字面量:[ ]

          b、Array对象:new Array()

(3)数组的内置方法(函数):数据的插入/删除、切片、过滤、查找

(4)与数组相关的算法:排序算法(冒泡)

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值