文章目录
-
- 数组
-
-
- 基本特性
- 常用方法
-
- 增/删
- 修改顺序
- 查询
- 连接、截取、过滤、更新
- 遍历
- 判断条件遍历查询
- 数组转字符串
-
数组 基本特性
- JavaScript中已经为我们封装好了较为完善的数组(自动扩容,允许存放不同类型的数据)
- 数组中间插入和删除性能较低,但是查找速度快(下标查找)
方法名 | 说明 | 返回值 |
---|---|---|
unshift(参数1…) | 头增,修改原数组 | 返回新的长度 |
push(参数1…) | 尾增,修改原数组 | 返回新的长度 |
shift() | 头删,修改原数组 | 返回删除元素值 |
pop() | 尾删,修改原数组 | 返回删除元素值 |
方法名 | 说明 | 返回值 |
---|---|---|
reverse() | 翻转数组,修改原数组 | 返回新数组 |
sort() | 直接使用,会将数字当成字符串,只看第一位;回调使用,排序;修改原数组 | 返回新数组 |
// 不能直接使用arr.sort,会按照字符串排序,即按照第一位数字排序
// 必须在里面加个function确定顺序
var arr=[1,20,60,7];
arr.sort() //1,20,60,7
arr.sort(function(a,b){
return(a-b);
//升序排列
return(b-a);
//降序排列
});
查询
方法名 | 说明 | 返回值 |
---|---|---|
indexOf(参数) | 从前向后找,只找一个 | 第一个满足条件的索引号,不存在返回-1 |
lastIndexOf(参数) | 从后向前找,只找一个 | 第一个满足条件的索引号,不存在返回-1 |
includes(参数,开始位置) | 查找是否存在 | true/false |
方法名 | 说明 | 返回值 |
---|---|---|
concat() | 连接两个或多个数组,不影响原数组 | 返回新数组 |
slice() | 数组截取slice(begin,end),不影响原数组 | 返回被截取项目的新数组 |
filter(item=>item.done) | 不影响原数组 | 返回新数组 |
splice() | 数组更新splice(begin,个数,item1…itemX)第三个参数可选,不填即为截取,会影响原数组 | 返回被删除项目的新数组 |
// 注意:slice()顾头不顾尾
var arr=[1,20,60,7];
var newArr = arr.slice(0,3)
console.log(newArr);
// [1,20,60]
遍历
- Array.from()
Array.from(可遍历对象名)
- forEach(function(value,index,arr) {})
arr.forEach(function(value,index,arr) {})
// value当前正在遍历的元素
// index当前正在遍历元素的索引
// arrobj整个数组
- map(function(value,index,arr) {})
array.map(function(value,index,arr), thisValue)
// value 必选。当前元素的值
// index 可选。当前元素的索引值
// arr 可选。当前元素属于的数组对象
// thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
// 返回一个新数组// 等同于
function myMap(fn){
//this是调用此方法的数组
let newArr = []
for(let i = 0;
i
判断条件遍历查询
// callback有三个参数。
// value:每一次迭代查找的数组元素。
// index:每一次迭代查找的数组元素索引。
// arr:被查找的数组。
- every(callback)
- some(callback)
- find(callback)
- findIndex(callback)
注意:find()返回的是值,indexOf()返回的是索引
findIndex比indexOf更强大一些,可以通过回调函数查找对象数组,但indexOf可以指定开始查找位置的索引
数组转字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换为字符串,逗号分隔每一项 | 返回一个字符串 |
join(“分隔符”) | 把数组中所有元素转换为一个字符串 | 返回一个字符串 |
推荐阅读
- # yyds干货盘点 # 盘点JavaScript中的事件及事件的三种模型
- 前端SSR的落地实践
- 基于Vue3最新标准,实现后台前端综合解决方案
- #|数理统计与机器学习
- 大数据|基于Echarts的餐饮可视化平台
- #|李宏毅机器学习笔记4 -- DNN训练
- # yyds干货盘点 # 手把手教你使用JavaScript打造一款扫雷游戏
- #yyds干货盘点#——Nginx在前端开发中的应用
- JavaScript 数据结构之 Set