数组的方法总结
join 把数组转成字符串
push和pop
push 数组的末尾添加,返回新的长度
pop 数组的末尾删除
shift和unshift
unshift 数组的第一个元素添加,返回新的长度
shift 数组的第一个元素删除,返回第一个元素的值
sort 对数组进行排序
数组.sort()按照数组的字符编码进行排序
想要按照升序或者降序排序的话需要需要自己封装一个简单的函数,传两个参数,例如下面,升序和降序只需要将返回的参数换一下位置
function mySort(m, n) {
return m - n
}
数组.sort(mySort)之后,查看原数组就好
reverse 反转数组
concat 连接两个或者多个数组 原数组不变,连接起来的组成一个副本
let lyl = ["我", "爱", "你"]
let cyx = ["C", "Y", "X"]
let myAnd = lyl.concat(cyx)
console.log(myAnd, "组成的副本数组"); ['我', '爱', '你', 'C', 'Y', 'X']
console.log(lyl, "原数组"); ['我', '爱', '你']
slice 数组的截取 (一般两个参数开始和结束) 返回新数组,原数组不变
let err = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
如果只有一个参数就是从下标0开始截取几位数
let err1 = err.slice(2)
console.log(err1); [3, 4, 5, 6, 7, 8, 9, 0]
let err2 = err.slice(0, 3)
console.log(err2); [1, 2, 3]
splice 在数组中增加或者删除,会改变原数组
一般是有三个参数splice(index ,howmany , itemX)
传一个参数/Users/admin/Desktop/practice/数组的方法.html
传递一个参数的时候表示从这个参数的位置开始一直截取到最后
传两个参数
第一个参数表示开始的位置(下标)
第二个参数表示要截取的个数;
若第二个参数为0,则表示不截取,返回的空数组,原来的数组不变
var arr = [2,4,6,7,8,9];
console.log(arr); [2,4,6,7,8,9]
var n = arr.splice(2,3); 表示从下标位置为2开始截取3个数
console.log(n); [6, 7, 8]
console.log(arr); [2, 4, 9]
传三个参数 (分第二个参数为不为0两种情况)
若第二个参数为0,则表示不截取,返回的空数组,原来的数组不变
若第二个参数不为0,表示从index开始,删除howmany个项,在下标为index的位置添加一个为itemX的新项
ES5新增的方法
两个索引方法 indexOf() 和 lastIndexOf()
indexOf() 查询查询某个元素在数组中第一次出现的位置 存在该元素,返回下标,不存在 返回-1
var list = [1, 2, 3, 4];
var index1 = list.indexOf(4); 3
var index2 = list.indexOf(5); -1
lastIndexOf() 查询某个元素在数组中最后一次出现的位置 (或者理解为反向查询第一次出现的位置) 存在返回下标,不存在 返回 -1
五个迭代方法 forEach()、map()、filter()、some()、every()
forEach() 对数组进行遍历循环,每次循环中执行传入的回调函数没有返回值,不改变原数组
array.forEach(function(value,index,arr){})
map() 遍历数组, 每次循环时执行传入的回调函数,根据回调函数的返回值,生成一个新的数组 ,同forEach() 方法,但是map()方法有返回值,可以return出来
filter() 遍历数组, 每次循环时执行传入的回调函数,回调函数返回一个条件,把满足条件的元素筛选出来放到新数组中
every() 功能: 遍历数组, 判断数组中所有的元素是否满足某个条件 返回true或 false,全真为真,一假为假
some() 遍历数组, 判断数组中所有的元素是否满足某个条件 返回true或 false,一真为真,全假为假
两个归并方法:reduce()、reduceRight()
reduce() 遍历数组,每次循环时候执行传入的回调函数,会返回一个值,这个值回作为初始值prev传入下一个函数中,返回最终的结果
arr.reduce(function(prev,item,index,array){})
prev 初始值,如果不设置初始值默认是数组中的第一个元素,遍历时从第二个元素开始遍历
item 每次循环的当前元素
index 每次循环的当前下标
array 原数组
var app = [2, 3, 4, 5];
var sum = app.reduce(function (prev, item, index, array) {
console.log(prev, item, index, array,11111);
2 3 1 (4) [2, 3, 4, 5] 11111
5 4 2 (4) [2, 3, 4, 5] 11111
9 5 3 (4) [2, 3, 4, 5] 11111
return prev + item;
});
console.log(sum,"reduce"); 14 'reduce'
reduceRight() 用法同reduce,只不过是从右向左
ES6新增的方法
Array.from() 用于将两类对象变成数组。一类是类数组对象,一类是可遍历对象。
Array.of() 用于将一组值,转换为数组,参数不分类型,只分数量,数量为0返回空数组
find() 和 findIndex() 用于找出第一个符合条件的数组成员和下标
find()当数组中没有符合的元素是返回undefined, findIndex()没有符合是返回-1
find() 对于空数组函数是不会执行的,也不会改变数组的原始值。
fill() 方法使用给定值填充一个数组
array.fill(value, start, end)
value:必需。填充的值。
start:可选。开始填充位置。如果这个参数是负数,那么它规定的是从数组尾部开始算起。
end:可选。停止填充位置 (默认为 array.length)。如果这个参数是负数,那么它规定的是从数组尾部开始算起。
includes() 检查是否包含某个值,返回true或false