7- 数组

目录

语法:

数组的操作

访问 数组中的数据

设置 数组中的数据

获取数组中元素的个数/长度

设置长度

删除

数组的遍历

基础类型和引用类型:

基础/简单类型:

存储:

赋值:

比较:

引用类型:

存储:

赋值:

比较:

数组方法:

7种会改变原数组的方法

参数不是函数的

参数是函数的

 冒泡排序:

选择排序:


语法:

var arr = new Array()  -- 小括号中放数字 表示有几个空的小空间

var arr = []  -- 大括号中放数字5,表示有一个小空间,存放了数字5

数组中可以存储多个不同类型的数据,只是我们在项目中使用的时候,一般是将同类型数据存储在数组中

数组的操作

访问 数组中的数据

数组[下标]

设置 数组中的数据

数组[下标] = 值

获取数组中元素的个数/长度

数组.length

设置长度

数组.length = 数字

第一个元素的下标一定是0,最后一个元素的下标一定是 length-1

删除

delect 数组[下标]

只能删除小空间中的数据,不能删除小空间

数组的遍历

for(var a = 0; a < arr.length; a++) {

arr[a]

}

基础类型和引用类型:

基础/简单类型:

number/string/boolean/undefined/null/symbol

存储:

直接将具体数据存储在栈内存中

赋值:

将具体的数据复制给另一个变量

比较:

基础类型比较类型和值

引用类型:

object/array/function

存储:

将具体数据存储在堆内存中,将堆内存中的内存地址存储在栈内存中

赋值:

将堆中的地址复制给另一个变量 - 导致两个变量共享同一个数据

比较:

引用类型比较地址

数组方法:

7种会改变原数组的方法

1.unshift --- 给数组开头添加一个或多个元素

语法:

数组.unshift(1个或多个元素) - 返回新数组的长度

2.shift --- 将数组的第一个元素删掉

语法:

数组.shift() - 返回被删掉的元素

3.push --- 给数组末尾添加一个或多个元素

语法:

数组.push(1个或多个元素) - 返回新数组长度

4.pop --- 删除数组的最后一个元素

语法:

数组.pop() - 返回被删掉的元素

5.splice --- 在数组的任意一个位置 添加、删除、修改 1个或多个元素

语法:

数组.splice(开始下标, 要删除的元素个数, 在删除位置要放进去的1个或多个元素) - 返回所有被删除的元素组成的数组

删除:

数组.splice(开始删除的下标,要删除元素的个数)

添加:

数组.splice(开始删除的下标,要删除元素的个数(0),要添加的元素)

修改:

数组.splice(开始删除的下标,要删除元素的个数,要添加的元素)

6.reverse --- 翻转数组

语法:

数组.reverse() - 返回翻转后的数组
7.sort --- 排序

语法:

数组.sort() - 进行了升序排列,默认使用字符串规则进行排列 - 返回排序后数组

按照数字的大小进行排列:

语法:

数组.sort(function(a, b) {

    return a - b // 升序

    return b - a // 降序

})

参数不是函数的

8.slice:从数组中截取出其中一部分

语法:

数组.slice(开始下标, 结束下标) - 返回截取出来的那一部分组成的数组

注意:包前不包后

           省略第二个参数就默认截取到数组末尾

           两个参数都不加,就会从开头截取到末尾

9.concat:将1个或多个 元素或数组 合并成一个更大的数组

语法:数组.concat(1个或多个元素或数组) - 返回更大的新数组

10.indexOf:查找元素在数组中第一次出现的下标

语法:

数组.indexOf(元素) - 找到了就返回下标,找不到返回-1

我们通常会利用找到和找不到的返回值不同,来判断一个元素是否在数组中

语法:

数组.indexOf(元素, 开始下标) - 从开始下标开始向后找元素第一次出现的下标

11.lastIndexOf:查找元素在数组中最后一次出现的下标

语法:

数组.lastIndexOf(元素) - 找到了就返回下标,找不到返回-1

语法:

数组.lastIndexOf(元素, 下标) - 将指定下标当做数组的结尾,找元素在数组中最后一次出现的下标

12.join:使用指定的连接符将数组中每个元素连接成一个字符串

语法:

数组.join(连接符) - 返回字符串

不指定连接符默认使用逗号连接

将所有元素合在一起

includes 

参数是函数的

forEach:用于遍历数组

语法:

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

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

})

forEach不遍历空元素

filter:将数组中满足指定条件的元素都组成一个新的数组并返回

语法:

var brr = 数组.filter(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 条件

})

map:将数组中每个元素都处理成新的元素,所有新的元素组成新的数组返回

语法:

var brr = 数组.map(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 处理后的新元素

})

every:判断数组中是否所有元素都满足指定的条件 - 都满足就返回true,有一个不满足就返回false

语法:

var bool = 数组.every(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 条件

})

some:判断数组中是否至少有一个是满足条件的 - 只要有一个是满足条件的就返回true,都不满足条件就返回false

 语法:

var bool = 数组.some(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 条件

})

find:从数组中找到满足条件的第一个元素 - 找到了就返回元素,找不到就返回undefined

语法;

var ele = 数组.find(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 条件

})

findIndex:从数组中找到满足条件的第一个元素的下标 - 找到就返回下标,找不到就返回-1

语法;

var ele = 数组.findIndex(function(value, index, array) {

    value - 代表遍历出来的每个元素

    index - 代表每个元素的下标

    array - 代表当前正在遍历的这个数组

    return 条件

})

reduce:归并 - 数组求和

语法:

数组.reduce(function(a, b) {

    a第一次代表第一个元素,第二次开始代表上一次返回的结果

    b第一次代表第二个元素,第二次代表第三个元素,...

})

 冒泡排序:

var arr = [1, 2, 3, 4]
for(var b = 0; b < arr.length - 1; b++) { // 0 1 2
    for(var a = 0; a < arr.length - 1 - b; a++) { // 0 1 2
        if(arr[a] < arr[a+1]) {
            var tmp = arr[a]
            arr[a] = arr[a+1]
            arr[a+1] = tmp
        }
    }
}
console.log(arr);

选择排序:

var arr = [9,1,5,3,4,8,6,2,7]
for(var b = 0; b < arr.length - 1; b++) {
    for(var a = b + 1; a < arr.length; a++) {
        if(arr[b] < arr[a]) {
            var tmp = arr[b]
            arr[b] = arr[a]
            arr[a] = tmp
        }
    }
}
console.log(arr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值