遍历数组每一项
在for循环体中 a[index] -》指数组中的每一项 index-》指数组中的索引
let a = [1, 2, 3, 4, 5, 6]
for (var index = 0; index < a.length; index++) {
console.log();
}
数组的方法
--------------------------改变原有数组-------------------
增加:push
返回值:改变后数组的长度
给数组的末尾增加一项,如若想增加多项,用逗号隔开想添加几项便可以增加几项
let arr_ays=[1,2,3]
arr_ays.push('12','12','我才是最后一项')
console.log(arr_ays);
增加:unshirft
->[改变原有数组的索引]->
返回值:改变后数组的长度
添加到数组的第一项(也就是索引为0的地方),如若想增加多项,用逗号隔开想添加几项便可以增加几项
let arr_ays=[1,2,3];
arr_ays.unshift(‘你十四诶’);
console.log(arr_ays); 输出:[‘你十四诶’, 1, 2, 3]
利用数组的length数组给数组的最后一项进行添加
var a=[1,2,3];
a[a.length]=4;
console.log(a); 输出[1,2,3,4]
如果是使用变量接收,例如 var b=a[a.length]=4; console.log(b);则输出的是4
删除:pop->删除数组的最后一项
返回值:被删除的那一项
let arr_ays = [1, 2, 3];
arr_ays.pop();
console.log(arr_ays);
shift:删除数组第一项
参数:无
返回值:被删除的那一项内容
原有数值改变了
删除第一项,后面的每一项索引改变
let arr_ays = [4, 1, 2, 3];
console.log(arr_ays.shift()); 输出:4
delete
删除键值对的方式也可以删除数组中的对应项
不会改变数组中原有项的索引
let arr_ays = [1, 2, 3];
delete arr_ays[0];
console.log(arr_ays); 输出:[空,2,3]
ary.length–;删除数组最后一项;输出取决于–在前还是在后,也就是–的位置
let arr_ays = [1, 2, 3];
console.log(arr_ays.length–);输出3
arr_ays.length–;
console.log(arr_ays); 输出:[1,2]
splice
增删改都可以
原来数组改变
1、 删除
splice( n, m): 从索引n开始删除m个
返回值:返回值是数组,被删除的内容( 以一个新数组保存)
pl:ary.splice(0,3); 输出:[4,5,6,7,8,9]
● splice( 0) 清空数组 pl:ary.splice(0); 输出:[]
● splice() 一项都不删除
● splice( ary.length - 1) 删除最后一项
2、 修改
splice( n, m, x): 在原有删除的基础上, 用x代替删除的内容。意思就是从索引n开始,删除m项[也就是删除m个],使用x替代[也就是增加x项]
let ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
ary.splice(0,2,‘嗯 你好’,‘知道了’);
console.log(ary); 输出:(9) [‘嗯 你好’, ‘知道了’, 3, 4, 5, 6, 7, 8, 9]
3、 增加
解释:当第二个参数为0,就是不删除,并且有第三项,就是增加
splice( n, 0, x): 在修改的基础上, 我们一项都不删除, 把x插入到索引n的前面
pl :
let ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
ary.splice(2, 0, ‘我爱你’, ‘真的吗’)
console.log(ary); 输出:(11) [1, 2, ‘我爱你’, ‘真的吗’, 3, 4, 5, 6, 7, 8, 9]
● ary.splice(0, 0, x) 在开头追加
● ary.splice(ary.length, 0, x) 在末尾追加
----------------------不改变原有数组方法-----------------
slice
参数: slice( n, m) 从索引n开始复制索引m处( 不包括m)
注:支持负数,总长度+负数索引进行计算,例如:[1,2,3,4,6,7,8,9] ary.slice(-5,-2)
let ary=[1,2,3,4,6,7,8,9];
console.log(ary.slice(-5,-2)); 输出:[4,6,7]
返回值: 把找到的部分以一个新数组返回
原来数组不变
如果第二个参数比length长,他只会克隆到末尾,不会报错
● slice( n) 从索引n开始复制末尾
● slice() 或slice( 0) 数组克隆, 和原来一样
var info = [1, 2, 3, 4, 5, 6, ];
var res = info.slice(2, 3);
console.log(res);
concat 数组拼接,可以穿多个参数拼接在一起,如果什么都不传,那就是数组的克隆,如果参数是数组,那么就会拔掉数组的一层[]。
let info=[‘1,2,3,4,5’];
let text=[‘6’,‘7’,9,8,6,5];
console.log(info.concat(text)); 输出:(7) [‘1,2,3,4,5’, ‘6’, ‘7’, 9, 8, 6, 5]
indexof/lastIndexOf->验证每某一项是否在该数组里,返回值如果是-1,则说明不在,如果存在则返回该数组的索引。
let a=[1,2,3,4,5,6,‘你好’];
let c=a.indexOf(‘你好’);
console.log©;输出:6
let c=a.indexOf(‘你好’);
console.log©;输出:-1
let a=[1,2,3,4,5,6,‘你好’];
console.log(a.indexOf(1));
indexof/lastIndexOf-的查询方向
indexof 从前向后查询
lastIndexOf 从后向前进行寻找
let a=[1,‘嗯’,2,3,4,5,6,‘3嗯’];
let indexInfo=a.indexOf(‘嗯’);
let lastIndexOfInfo=a.lastIndexOf(‘嗯’);
console.log(indexInfo,lastIndexOfInfo);
includes 检验数组中是否包含这一项
返回值:boolean类型,有返回true;没有返回false
该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。
let info=[1,2,3,4,5,6,7,2,8,9];
console.log(info.includes(2,-10));输出:true
----------------------数组排序-----------------------
Resvers
把数组的每一项倒过来排序
改变原有数组
let info=[1,2,3,4,5,6,7,2,8,9];
let n=info.reverse();
console.log(n);输出:(10) [9, 8, 2, 7, 6, 5, 4, 3, 2, 1]
sort:实现数组排序,在没有传参的情况下,只根据第一位来进行排序。[数字按照从小到大进行排序][字母按照字母表][汉字按照笔画进行排序]
参数: 无或者回调函数
返回值: 排序后的数组( 与原数组是一个地址)
原来数组改变● 在无参数的情况下: 只根据第一位排序
let info = [1, 2, 3, 4, 5, 6, 7, 2, 8, 9];
info.sort(function (a, b) {
return b - a;
})
// console.log(info); 输出:[9, 8, 7, 6, 5, 4, 3, 2, 2, 1]
let info = [1, 2, 3, 4, 5, 6, 7, 2, -8, 9, 10, 3, -5, 2, 12];
let inTag = info.sort((a, b) => {
console.log(a,b)
return a - b;
})
console.log(inTag);
> toString ---------将数组改为字符串
参数: 无
返回值: 以逗号隔开的方式转为字符串
> join
参数: ''(
空字符串)
返回值: 没有逗号的字符串
参数: 无
返回值: 有逗号的字符串
参数: '+'
返回值: 以 + 分隔的字符串
想以什么作为分隔符, 就把分隔符传入空字符串中