js数组常用的方法
1. 创建数组的方法
- 字面量创建数组
- var arr = []
- var arr = [1, 2, 3 ]
- 构造函数创建数组
- var arr = new Array() // arr.length = 0
- var arr = new Array(3) // arr.length = 3
- var arr = new Array(1, 2, 3) // arr = [1, 2, 3], arr.length = 3
2. 常用数组的方法
- 数组增删改查的方法
- push() -------追加至原数组末尾,原数组被修改
– param(s):要增加的数组元素(可以多个),
– return:修改后的数组长度 - pop() ------删除数组最后一个元素,原数组被修改
– param(s): 无
– return:被删除的数组元素,数组为空返回undefined - unshift() -------添加至原数组开头,原数组被修改
– param(s):要增加的数组元素(可以多个),
– return:修改后的数组长度 - shift() ------删除数组开头一个元素,原数组被修改
– param(s): 无
– return:被删除的数组元素,数组为空返回undefined - splice() ------ 可实现数组元素的删除、插入和替换
–param(s):
删除:2个参数,要删除项的数组元素位置和要删除的元素个数,例如:[1, 2, 3].splice(0,2) // 删除开头两项
插入:3个或者3个以上参数,起始数组元素位置、 0(要删除的元素个数)和要插入的数组元素(可连续多个),例如:[1, 2, 3].splice(1, 0, 4, 5) // [1, 4, 5, 2, 3]
替换:3个或者3个以上参数,起始数组元素位置、要删除的元素个数和要插入的任意数量的数组元素
–return: 被删除的数组元素以数组的方式返回 - indexOf() ------顺序查找
– param(s): 要查找的元素和查找的起始位置索引(可选参数)
– return:查找到要元素的起始位置索引,或者未查找到时返回-1 - lastIndexOf() --------倒序查找
– param(s): 要查找的元素和查找的起始位置索引(可选参数)
– return:查找到要元素的起始位置索引,或者未查找到时返回-1 - concat() --------数组合并,不会修改原数组
– param(s):
0个参数:复制原数组并返回,例如:[1, 2].concat() // [1, 2] ----为原数组的一个副本
1个或者多个数组元素:[1, 2].concat(3,4,5) // [1, 2, 3, 4, 5]
1个或者多个数组:[1,2].concat([5,6],[7,8]) // [1, 2, 5, 6, 7, 8]
元素和数组混合:[1,2].concat(3,4,[5,6],[7,8]) // [1, 2, 3, 4, 5, 6, 7, 8]
– return: 合并后的新数组 - slice() -------数组截取
– param(s):
0个参数:复制原数组并返回(浅拷贝)
1个参数或者2个参数:起始位置索引和终止位置索引
– return: 通过索引截取到的新数组
- 数组遍历的方法
- for循环遍历
var arr = [1,2,3];
for(var i= 0; i < arr.length; i++) {
console.log(arr[i]);
}
- forEach()
–param(s): 参数类型为Function,Function的参数为数组元素(可选),数组索引(可选)和数组本身(可选)
– return: 无返回值 - map() ------- “映射”功能,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
- filter() ------- “过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
- every() ------ 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
- some() ------ 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
- 数组排序的方法
- sort()
– 默认会调用每个数组项的 toString()转型方法,然后比较得到的字符串,以确定如何排序。
var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
arr2 = [13, 24, 51, 3];
console.log(arr2.sort()); // [13, 24, 3, 51]
– 数组元素按数值大小排序
// 升序排列
let arr = [3, 2, 1]
arr.sort(function(a,b){return a-b}) // [1, 2, 3]
// 倒序排列
let arr = [1, 2, 3]
arr.sort(function(a,b){return b-a}) // [3, 2, 1]
- 数组去重
let arr = [1, 2, 3, 1, 2, 3, 1, 1, 2]
let tempArr = [...new Set(arr)] // [1, 2, 3]