转字符串方法:
toString:完全扁平化
join('-'):只会分割第一层数组
str.split: 字符串转数组方法
堆栈方法:
push(尾部添加) => 返回增加数组后的长度
pop(尾部删除) => 返回删除元素的值
unshifl(头部添加) => 返回增加数组后的长度
shifl(头部删除) => 返回删除元素的值
排序方法:
sort => 修改原数组,返回数组
arr.sort((a, b) => a -b)顺序
arr.sort((a, b) => b -a)倒序
reverse() => 修改原数组,返回数组,顺序颠倒
随机排序:
function compate(){
return Math.random() - 0.5
}
arr.sort(compate)
拼接方法:
concat => 返回新数组,不操作原数组,不能拼接多维数组
删改方法:
slice(0, 2):参数1 截取的起始位置, 参数2 截取结束位置
不修改原数组,返回截取后的新数组
splice(0, 2, '1'):参数1 起始:删除/增加的位置, 参数2 指定删除元素的个数, 参数3 插入的值
修改原数组,返回删除元素组成的数组,没有删除的元素返回为空数组
参数只有1位做删除操作,
查找索引:
indexOf(1): 参数1 查找当前数组中存在的中,存在返回索引位置,不存在返回-1,从左往右查找
lastIndexOf(1): 参数1 查找当前数组中存在的中,存在返回索引位置,不存在返回-1,从右往左查找
includes(1, 2):参数1 查找的值,参数2(可选) 索引位置:从索引位置开始查找
查找值得方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
数组(构造函数)的静态方法:
Array.of(参数...): 将类数组对象,转化为真正的数组
Array.of()方法总是返回参数值组成的数组。如果没有参数,就返回一个空数组
Array(参数):
Array构造函数可以用来直接创建数组,Array方法没有参数、一个参数、三个参数时,返回结果都不一样。
只有当参数个数不少于 2 个时,Array()才会返回由参数组成的新数组。参数个数只有一个时,这个参数还是
Number类型,这个参数实际上是指定数组的长度。Array.of()方法基本上可以用来替代Array()或new Array(),
并且不存在由于参数不同而导致的重载。它的行为非常统一
遍历方法
find:
查找第一个满足条件的值,返回满足条件的元素的值,没有返回undefined
arr.find(function(item,index,arr) {
return item > 4
})
findIndex:
查找第一个满足条件的值,返回满足条件的元素下标,没有返回-1
arr.find(function(item,index,arr) {
return item > 4
})
forEach:
参数1 回调函数, 参数2 指定当前this指向
没有return(返回值),返回值为undefined,指定返回值依然是undefined
不能使用break和continue,会报错
类数组不能使用,需要转换为数组,或使用Array.prototype.forEach.call(类数组,function(item,index){console.log(item)}), [...类数组].forEach(item => {console.log(item)})
空数组会直接跳过循环
[1,2, ,4]: 对于稀疏数组,这个值不存在会跳过,普通for循环不会跳过
let arr = [1,2,3,4,5,6]
let obj = {
a:1
}
arr.forEach(function(item,index,arr) {
console.log(this)
},obj)
map:
参数1 回调函数, 参数2 指定当前this指向
需要指定返回值()return
映射关系:根据原数组,能够返回一个跟原数组产生映射关系数组
不指定返回值,返回undefined
let arr = [1,2,3,4,5,6]
let obj = {
a:1
}
let arr1 = arr.map(function(item,index,arr) {
return
console.log(this)
},obj)
filter:
参数1 回调函数, 参数2 指定当前this指向
需要指定返回值()return 返回满足条件的元素
let arr = [1,2,3,4,5,6]
let obj = {
a:1
}
let arr1 = arr.filter(function(item,index,arr) {
return item > 3
console.log(this)
},obj)
some:
参数1 回调函数, 参数2 指定当前this指向
需要指定返回值()return 数组中有一项满足条件返回true,不满足返回false
let arr = [1,2,3,4,5,6]
let obj = {
a:1
}
let arr1 = arr.some(function(item,index,arr) {
return item > 3
console.log(this)
},obj)
every:
参数1 回调函数, 参数2 指定当前this指向
需要指定返回值()return 数组中全部元素满足条件返回true,不满足返回false
let arr = [1,2,3,4,5,6]
let obj = {
a:1
}
let arr1 = arr.every(function(item,index,arr) {
return item > 3
console.log(this)
},obj)
redece: 归纳函数,累加器
参数一:回调函数
参数二:初始值 初始值===函数的第一个参数
return 返回累加完成后的值
不指定第二个参数,从第一项开始循环
指定第二个参数从第一项开始循环(初始值)
let arr = [1,2,3,4,5,6]
let arr1 = arr.redece(function(accumulator, currentVlue, currentIndex, arr) {
return item * 2
}, 10)