整理一下js中的数组函数
1.Array.isArray()
用于检测是否是数组,返回true或者false;
var arr = [1,2,3];
Array.isArray(arr);//返回true
2.toString()
转换为字符串,在默认情况下都会以逗号分隔字符串的形式返回字符串
var arr = [1, 2, 3];
console.log(arr.toString());//返回'1,2,3'
3.join()
转换为字符串,并以括号内的字符串分割,返回字符串
var arr = [1, 2, 3];
console.log(arr.join('&&'));//返回1&&2&&3
4.pop()
移除数组中的最后一个项并且,同时将数组的长度减一,返回该项
var arr = [1, 2, 3];
console.log(arr.pop());//返回3
5.push()
接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
var arr = [1, 2, 3];
console.log(arr.push(4));//返回4
6.shift()
移除数组中的第一个项并且返回该项,同时将数组的长度减一
var arr = [1, 2, 3];
console.log(arr.shift());//返回1
7.unshift()
在数组的前端添加任意个项,并返回数组的长度
var arr = [1, 2, 3];
console.log(arr.unshift(0));//返回4
8.reverse()
反转数组项的顺序,改变原数组,返回新数组
var arr = [1, 2, 3];
console.log(arr.reverse());//返回[3,2,1]
9.sort()
默认排序:该方法会调用每个数组项的toString() 方法,然后按照字符序列排序
定义排序:该方法可以接受一个比较函数作为参数,比较函数有两个参数 .如果第一个参数位于第二个参数之前,返回负数 c.如果第一个参数位于第二个参数之后,返回正数
默认排序
var arr = [1, 2, 3, 11, 12, 456];
console.log(arr.sort());//返回[ 1, 11, 12, 2, 3, 456 ]
正序排序
var arr = [1, 2, 3, 11, 12, 456];
console.log(arr.sort((a, b) => {
return a - b
}));//返回[ 1, 2, 3, 11, 12, 456 ]
倒叙排序
var arr = [1, 2, 3, 11, 12, 456];
console.log(arr.sort((a, b) => {
return b - a
}));//返回[ 456, 12, 11, 3, 2, 1 ]
10.concat()
拼接数组,先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,返回副本, 不改变原数组
var arr = [1, 2, 3];
console.log(arr.concat([4, 5, 6]))//返回[1,2,3,4,5,6]
11.slice()
数组切割,可接受一个或者两个参数(返回项的起始位置,结束位置)
当接受一个参数,从该参数指定的位置开始,到当前数组末尾的所有项。
当接受两个参数,起始到结束之间的项,但是不包含结束位置的项。不改变原数组
一个参数
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr.slice(3))//返回[ 4, 5, 6 ]
两个参数
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr.slice(3, 5))//返回[ 4, 5 ]
12.splice()
可以实现删除、替换、修改
删除:指定两个参数(起始位置,要删除的项数)
插入:指定三个参数(起始位置,0,要插入的任意数量的项)
替换:指定三个参数(起始位置,要删除的项数,要插入的任意数量的项)
删除
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(0, 3)
console.log(arr)//[ 4, 5, 6 ]
插入
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(6, 0, 7, 8, 9)
console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
替换
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(0, 3, 7, 8, 9)
console.log(arr)//[ 7, 8, 9, 4, 5, 6 ]
13.indexOf()
从数组开头向后查找,使用全等操作符,找不到该元素返回-1。
第一个参数为要查找的 项,第二个参数(可选)为索引开始位置
var arr = [1, 2, 3, 3, 2, 1];
console.log(arr.indexOf(3))//返回2
14.lastIndexOf()
从数组末尾向前查找,使用全等操作符,找不到该元素返回-1。
第一个参数为要查找的 项,第二个参数(可选)为索引开始位置
var arr = [1, 2, 3, 3, 2, 1];
console.log(arr.lastIndexOf(3))//返回3
15.every()
对数组中的每一元素运行给定的函数,如果该函数对每一项都返回true,则该函数返回 true
var arr = [20, 5, 13, 5, 3, 1, 9, 1];
var result = arr.every(function (item, index, arr) {
return item > 2;
});
console.log(result); //false
16.some()
对数组中的每一运行给定的函数,如果该函数对某一项返回true,则返回true
var arr = [11, 5, 23, 7, 4, 1, 9, 1];
var result = arr.some(function (item, index, arr) {
return item > 2;
});
console.log(result); //true
17.filter()
对数组中的每一项运行给定的函数,会返回满足该函数的项组成的数组
var arr = [11, 5, 23, 7, 4, 1, 9, 1];
var result = arr.filter(function (item, index, arr) {
return item > 10;
});
console.log(result); // [ 11, 23 ]
18.map()
对数组中的每一元素运行给定的函数,返回每次函数调用的结果组成的数组
var arr = [11, 5, 23, 7, 4, 1, 9, 1];
var result = arr.map(function (item, index, arr) {
return item * 2;
});
console.log(result); // [ 22, 10, 46, 14, 8, 2, 18, 2]
19.forEach()
对数组中的每一元素运行给定的函数,没有返回值,常用来遍历元素
var arr = [11, 5, 23, 7, 4, 1, 9, 1];
var result = arr.forEach(function (item, index, arr) {
console.log(item);
});