JavaScript 数组

1. 定义数组

(1)字面量形式

var arr = [1, 2, 3, 4, 5]

(2)new方法创建数组对象

// 数组长度为5
var arr = new Array(5)
2. 数组的遍历
var arr = [1, 2, 3, 4, 5]

for (var i = 0; i < arr.length; i++) {
    console.log(arr[i])

}
3. isArray 判断是否为数组

Array.isArray(arr)
返回bool值

4. instanceof 检测数据类型

arr instanceof Array
返回bool值

4. 数组常用方法

4.1 push

作用:在数组后面添加一个或多个数据
返回:返回push后数组长度
是否改变原数组: 改变原数组
在这里插入图片描述

4.2 pop

作用: 删除数组最后一个数据
返回: 删除的数据
是否改变原数组: 改变原数组
在这里插入图片描述

4.3 unshift

作用:在数组前面添加一个或多个数据
返回:返回push后数组的长度
是否改变原数组:改变原数组
在这里插入图片描述

4.4 shift

作用:删除第一个数据
返回:返回删除的数据
是否改变原数组:改变原数组
在这里插入图片描述

4.5 concat

作用:合并两个数组
返回:新数组
是否改变原数组:不改变
在这里插入图片描述

4.6 slice

作用:截取数组
返回:截取后的数组
是否改变原数组:不改变

用法:arr.slice(start, [end])
start : 截取数组开始的下标
end: 截取end前的数据
前闭后开
在这里插入图片描述

slice 复制一个新数组

const arr = [1,2,3,4,5];

const newArr = arr.slice();
console.log(newArr); // [1,2,3,4,5]

4.7 多功能splice方法

作用: 可以截取,插入, 替换数据
是否改变原数组:改变原数组

4.7.1 截取

一个参数时:
arr.splice(3) 从索引3开始截取后面所有元素
返回截掉的元素,改变原数组

  • 从下标2开始截取3个
  • 返回截取的数据
    在这里插入图片描述
4.7.2 插入数据
  • 从下标2开始截取0个,也就是插入
  • 返回删除的数据
    在这里插入图片描述
4.7.3 替换数据
  • 从下标2开始,替换后4个数据为新添加的数据
  • 返回删除的数据
    在这里插入图片描述
4.7.4 删除数据
  • 删除最后两条数据
  • 返回删除的数据
    在这里插入图片描述

5. 数组逆序reverse

改变原数组
在这里插入图片描述

6. sort 排序

  • 默认以ASCII码值排序
  • 改变原数组
    在这里插入图片描述

数字排序通过回调函数实现

(1)从小到大排序

var arr = [11, 23, 4, 45, 5]

arr.sort(function(a, b) {
    return a - b
});
console.log(arr)

(2)从大到小排序

arr.sort(function(a, b) {
    return b - a
});

7. join

作用: 数组转字符串
不改变原数组
在这里插入图片描述

8. indexof

作用:从前向后检索索引; 返回索引值
如果查询的不存在,返回-1

在这里插入图片描述
arr.indexOf(2, 5) 从索引5开始查找

8.1 lastindexof

作用:从后向前检索索引;返回索引值
如果查询的不存在,返回-1

索引任然是从前往后数

9. 数组高级方法之迭代方法

(1)every()
检测数组中所有元素是否都符合指定条件,一个不满足都会返回false

let arr = [1,2,3,4,5];

const bool = arr.every((v, i) =>{
    return v < 6;
});

console.log(bool); //true

(2)some()
有一项满足局返回true

let arr = [1,2,3,4,5];

const bool = arr.some((v, i) =>{
    return v < 0;
});

console.log(bool); //false

(3) filter()
返回符合条件的所有元素存放在另一个数组中

let arr = [1,2,3,4,5];

const bool = arr.filter((v, i) =>{
    return v < 3;
});

console.log(bool); //[1,2]

(4) map()
对数组里的每个元素经过指定操作返回

let arr = [1,2,3,4,5];

const bool = arr.map((v, i) =>{
    return v * 2;
});

console.log(bool); //[2,4,6,8,10]

(5)forEarch
循环遍历

let arr = [1,2,3,4,5];

arr.forEach((v, i) =>{
    console.log(v);
});

(6)reduce
数组的第一项开始,逐个遍历到最后

let arr = [1,2,3,4,5];

const sum = arr.reduce((total, v) =>{
    return total + v
}, 0);

console.log(sum); //15
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值