JavaScript数组
基础API
存取数据
-
indexOf()
- 查找目标数字在数组中的索引,如果没有返回-1
-
lastIndexOf()
- 从后面开始查找
数组转为字符串:
-
join()
-
toString()
从已有的数组创建新数组:
-
concat()
- 连接两个数组
-
splice(i,n,...args)
-
删除数组中指定下标
i
之后的n
个值;如果后面有参数,则代表使用后面的参数代替指定下标i
之后的n
个值。...args
参数代表可以给多个参数值
可变函数
-
push()
- 将元素添加到数组末尾
-
unshift()
- 将元素添加到数组开头
-
pop()
- 删除数组末尾的元素
-
shift()
- 删除数组中的第一个元素
-
reverse()
- 原地反转
-
sort()
-
原地排序
-
默认按照字母大小排序
-
如果要排序数字,可以传参一个函数:
-
arr.sort((a,b)=>a-b)
-
迭代器方法
不生成新数组:
forEach()
- 接受一个函数为参数
- 对数组的每个元素使用该函数
- 改变原数组
every()
- 接受一个返回值为
Boolean
的函数 - 对数组的每个元素使用该函数,如果对于所有元素,该方法均返回
true
,则该方法返回true
。
- 接受一个返回值为
some()
- 接受一个返回值为
Boolean
的函数 - 对数组的每个元素使用该函数,如果有一个元素,该方法均返回
true
,则该方法返回true
。
- 接受一个返回值为
reduce()
- 接受一个函数为参数,返回一个值
- 累加器
reduceRight()
- 从右往左累加
生成新数组:
map()
- 对数组内每个元素使用某个函数,并返回一个新的数组;该数组的元素是对原有元素应用某个函数得到的结果。
filter()
- 传入一个返回值为
Boolean
的函数,返回满足要求的数组元素组成的新数组。
- 传入一个返回值为
二维数组
js只支持一维数组,但是可以通过把数组元素作为数组来创建多维数组。
// 一维数组
let arr = [];
// 二维数组 - 为Array添加一个新方法;
Array.matrix = function(m,n,initial){
let arr = [];
for(let i = 0;i<m;i++){
let temp = [];
for(let j = 0;j<n;j++){
temp.push(initial);
}
arr.push(temp);
}
return arr;
}