js数组函数整理

173 阅读4分钟

整理一下js中的数组函数

1.Array.isArray()

用于检测是否是数组,返回true或者false
var arr = [123];
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);
});