学习目标:
数组的方法
数组.方法名();
1.原数组发生变化
2.原数组不变 给到的结果是一个新的数组
第一部分:
栈方法 先进后出 后进先出 电梯 操作的是数组的结尾
-
push();
语法: 数组名.push(数据);
作用: 数组的末尾追加数据
返回值: 追加数据以后 数组最新的长度
-
pop();
语法: 数组名.pop(); // 括号中不用写数据
作用: 删除数组的最后一个数据
返回值:被删除的数据
队列方法 先进先出 管道 操作的是数组的开头
-
unshift();
语法: 数组名.unshift(数据);
作用: 数组的开头追加数据
返回值: 追加数据以后 数组最新的长度
-
shift();
语法: 数组名.shift(); // 括号中什么也不写
作用: 删除数组的第一个数据
返回值:被删除的数据
第二部分:
反转数组
-
reverse();
语法:数组.reverse();
作用: 反转数组. 反转 仅仅是倒过来 不排序
返回值:反转以后的数组; 原数组发生变化
排序
-
sort();
语法: 数组.sort();
作用: 对数组内的数据进行排序
返回值: 排序后的数组 原数组发生变化
一个方法默认对字母进行排序 同时 又能排序数字
结果不如我们所愿 排序数字的时候 可能不准确
为了保证准确 我们需要手动干预
干预的方式就是传一个匿名函数
语法:
数组.sort(function(a,b){return a-b}); 升序
数组.sort(function(a,b){return b-a}); 降序
数组.sort(function(a,b){if(a>b){return 1}else{return -1}})
数组.sort(function(a,b){if(a<b){return 1}else{return -1}})
以后开发如果你不想单独写排序方法,可以采用sort();
但是排序的是数字,必须手动干预 .
截取数组
-
splice();
-
数组的增
数组.splice(开始的索引,0,插入的数据1,数据2,...数据n);
截取0个放入一个或者多个
-
数组的删
数组.splice(开始的索引,多少个);
截取多个 不放里插入
-
数组的改
数组.splice(开始的索引,多少个,插入的数据1,数据2,数据n);
截取多少个 插入多少个
第三部分:
前两部分 直接改变原数组
第三部分 结果会放到一个新的数组中 不会影响原数组
-
concat();
语法: 原数组.concat(数组1,数组2,数组3,数据1);
作用: 进行数组拼接,将参数的所有数组或者数据 都拼接在原始数组身上
返回值: 拼接好的数组
语法: 原数组.concat(数组1,数组2,数组3,数据1);
作用: 进行数组拼接,将参数的所有数组或者数据 都拼接在原始数组身上
返回值: 拼接好的数组
数组转字符串的方法
-
join();
语法:数组.join('连接符');
作用: 使用连接符将数组内的每个元素 连接成一个字符串 (不写连接符 默认用逗号)
返回值:连接好的字符串
-
slice();
语法: 数组.slice(开始索引,结束索引); //[1,10] 1<=x<=10 (1,10) 1<x<10
// [1,10) 1<=x<10
参数的特点:
1:左闭右开 包含开始索引 不包含结束索引
2:开始索引不写 默认开始索引为0 结束索引不写 默认为length
可以是负数 表示倒数第几个 等同于 length+负数
[1,2,3]
从左到右 0 1 2
从右往左 -3 -2 -1
作用: 截取数组的部分内容
返回值: 截取后的新数组
和 splice 的区别:
1. 是否改变元数组 1. splice 改变原数组 2. slice 不改变原数组 2. 参数 1. splice(开始的位置,多少个) 2. slice(开始的索引,结束的索引)
-
indexOf()
语法: 数组.indexOf('数据');
数组.indexOf('数据',开始的索引);
作用:
从左往右 检索该数据第一次出现在数组中的位置
返回值:
如果数组中 有这个数据 那么返回该数据第一次出现的索引位置
如果数组中没有这个数据 那么返回 -1
-
lastIndexOf()
语法: 数组.lastIndexOf('数据');
数组.lastIndexOf('数据',开始的索引);
作用:
从右往左 检索该数据第一次出现在数组中的位置
返回值:
如果数组中 有这个数据 那么返回该数据第一次出现的索引位置
如果数组中没有这个数据 那么返回 -1