数组的常用方法

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

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

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

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

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

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

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

数字:0 1 2 ...... 9

数字字符:'0','1'.....'9'

'0'的ASCII码值是48

' ' --- 32

'a' --- 97

'A' --- 65

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

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

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

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

(1)删除元素:

       ```javascript

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)

//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表示没有找到

              ```javascript

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)

13filter(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(值/变量):用给定的值或变量填充数组

 ```javascript

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)

二、二维数组

1、一维数组:数组元素只有一个下标(通过一个下标就可以定位数组中的元素)

2、二维数组:数组中的每个元素都有两个下标(由行和列组成的数组)

(1)定义:

a、通过字面量:[ ]

var arr = [[1,2,3], [4,5,6], [7,8,9]

b、使用Array对象

var arr = new Array(
      new Array(1,2,3),
      new Array(4,5,6),
      new Array(7,8,9)
      )

(2)二维数组元素的访问:数组名 下标1 默认情况下'下标1'代表行下标,'下标2'代表列下标

(3)输出:采用循环嵌套

var str = ''
        for(let i=0;i<arr.length;i++){ //外循环:控制数组的行数。arr.length表示arr数组的行数.i表示行下标
            for(let j=0;j<arr[i].length;j++){//内循环:控制数组的列。arr[i].length表示i行的元素个数。j表示列下标
                str += arr[i][j] + '\t'
            }
            str += '\n'
        }
        console.log(str)

练习1:定义一个二维数组,输出该二维数组的最大值

var arr = new Array(new Array(56,35,42),
                    new Array(89,65,77),
                    new Array(123,78,99)
                    )
        
        let max = arr[0][0]  //假设二维数组的第一个元素是最大值
        for(let i=0;i<arr.length;i++){
            for(let j=0;j<arr[i].length;j++){
                if(max < arr[i][j]){
                    max = arr[i][j]
                }
            }
        }
        console.log("Max=",max)

练习2、计算斐波拉契数列的前20项之和

1 1 2 3 5 8 13 21 34......

var f1 = 1, f2 = 1
        var sum = f1+f2

        for(let i=3;i<=20;i++){
            let fn = f1+f2
            f1 = f2
            f2 = fn
            sum += fn
        }
        console.log("sum=",sum)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值