js数组的常用方法

目录

一,常见的数组方法

二.方法详解

1.push()方法

2.shift()方法

3.unshift()方法

4.pop()方法

5.reverse()方法

6.sort()方法

7.concat()方法

8.join()方法

9.splice()方法

10.slice()方法

11.toString()方法

12.valueOf()方法

13.indexOf()方法

14.lastIndexOf()方法

15.forEach()方法

16.map()方法

17.filter()方法

18.every()方法

19.some()方法

20.reduce()方法

21.reduceRight()方法

22.includes()方法

23.from()方法

24.find()方法

25.findIndex()方法

26.fill()方法

27.flat()方法

28.flatMap()方法


js中数组中有一些常用且重要的方法,以下是我对数组方法的总结。

一,常见的数组方法

常见的数组方法大致可以分为增删改查以及其他一些方法。

增:push(),unshift()、concat()、splice()。

删:pop()、shift()、splice()。

改:splice()、fill()、sort()。

查:indexOf()、lastIndexOf()、includes()、find()、findIndex()。

其他一些有:

reverse()方法用于反转数组的顺序;

forEach()、map()、filter()、every()、some()、reduce()、reduceRight()等方法主要用于对数组进行遍历和操作,但不太适合单纯的增删改查分类;

join()方法将数组元素连接成字符串;

toString()和valueOf()方法通常用于将数组转换为字符串表示;

from()方法用于从类数组对象或可迭代对象创建新的数组;

flat()和flatMap()方法用于处理多维数组;

二.方法详解

1.push()方法

功能:在数组末尾添加一个或多个元素,并返回新的数组长度,添加多个元素用逗号隔开。

var arr = [1, 2, 3]
var arrs = arr.push("zs", "ls")
console.log(arr);//[1,2,3,"zs","ls"]
console.log(newarr); //5
2.shift()方法

功能:在数组中删除第一个元素,且每次只能删除数组的第一个,并返回被数据元素的值,会改变原来的数组。

var arr = ["张三", "李四", "赵五"]
var arrs = arr.shift()
console.log(arr); //['李四', '赵五']
console.log(arrs); //张三
3.unshift()方法

功能:在数组的开头添加一个或多个元素,添加多个元素用逗号隔开,并返回新数组的长度,改变原数组。

var arr = [1, 2, 3]
var arrs = arr.unshift(3, 4)
console.log(arr); //[3, 4, 1, 2, 3]
console.log(arrs); //5
4.pop()方法

功能:从数组的末尾删除最后一个元素,且每次只能删除最后一个元素,并返回被删除的元素,会改变原来数组的值

var arr = [1, 2, 3]
var arrs = arr.pop(3, 4)
console.log(arr); //[1, 2]
console.log(arrs); //3
5.reverse()方法

功能:将数组中的元素反转,并返回被反转的数组,会改变原数组

var arr = [1, 2, 3,"a","b",4,5]
var arrs = arr.reverse()
console.log(arr); //[5, 4, 'b', 'a', 3, 2, 1]
console.log(arrs); //[5, 4, 'b', 'a', 3, 2, 1]
6.sort()方法

功能:对数组中的元素进行排序,并返回数组,它是按照Unicode码点进行排序。

例1:

var arr = [2,6,11,5,1,3]
var arrs = arr.sort()
console.log(arr); //[1, 11, 2, 3, 5, 6]
console.log(arrs); //[1, 11, 2, 3, 5, 6]

由于它是根据Unicode编码进行排序,从结果得知其不稳定性。

语法:arr.sort(function(a,b))

参数:两个参数用于比较,如果a小于b,返回值为负数,如果a大于b,返回值为正数,如果两个参数相等,返回值为0,如果省略函数,元素会转换为字符串根据Unicode 码位值进行排序。

用法:

var arr = [2,6,11,5,1,3]
arr.sort(function(a,b){
   return a-b //从小到大排序
})
console.log(arr); //[1, 2, 3, 5, 6, 11]
var arr = [2,6,11,5,1,3]
arr.sort(function(a,b){
   return b-a //从大到小排序
})
console.log(arr); //[11, 6, 5, 3, 2, 1]

还可以对对象数组中的某个属性进行排序:

var data = [
   { name: "张三", age: 25 },
   { name: "李四", age: 28 },
   { name: "赵五", age: 20 },
]
data.sort(function (a, b) {
    return a.age - b.age //按照age排序
})
console.log(data); 
7.concat()方法

功能:将两个或多个数组合并,该方法不会改变原数组,且返回一个新数组。

var arr1 = [1, 2, 3]
var arr2 = ["a", "b", "c"]
var arr3 = ["A", "B", "C"]
var arr = arr1.concat(arr2, arr3)
console.log(arr1); //[1, 2, 3]
console.log(arr); //[1, 2, 3, 'a', 'b', 'c', 'A', 'B', 'C']
8.join()方法

功能:将数组的所有元素用特定字符连接成一个字符串。

var arr = [1, 2, 3, "a", "b"]
var res = arr.join(",") // "1,2,3,a,b"
var res = arr.join("/") // "1/2/3/a/b"
var res = arr.join(" ") // "1 2 3 a b"
console.log(res);
9.splice()方法

功能:向数组中 删除/替换/添加 元素,然后返回被删除/替换/添加的元素的数组,可实现数组的增删改。

语法:ArrayObject.splice(start,deletecount,tiem1,...,itemX)

参数:

start:必写,必须是整数,删除/添加元素项目位置,为负数时从数组末尾规定位置。

deletecount:可写,必须是整数,表示数组从start开始删除元素的数量。

tiem1,...,itemX:从start开始添加的到数组的元素。

var arr = [1, 2, 3, "a", "b"]
//删除数组从索引2开始的所有元素
var arrs = arr.splice(2)
console.log(arr); //[1, 2]
console.log(arrs); //[3, 'a', 'b']
var arr = [1, 2, 3, "a", "b"]
//删除索引2开始的一个元素
var arrs = arr.splice(2,1)
console.log(arr); //[1, 2, 'a', 'b']
console.log(arrs); //[3]
var arr = [1, 2, 3, "a", "b"]
//删除索引从-2开始的一个元素
var arrs = arr.splice(-2,1)
console.log(arr); //[1, 2, 3, 'b']
console.log(arrs); //['a']
var arr = [1, 2, 3, "a", "b"]
//删除索引2开始的一个元素,且添加"c"和"b"
var arrs = arr.splice(2,1,"c","d")
console.log(arr); //[1, 2, 'c', 'd', 'a', 'b']
console.log(arrs); //[3]
10.slice()方法

功能:从开始位置到结束位置对数组进行浅拷贝,并返回一个新数组,且不会改变原数组。

语法:arr.slice(start,end)

参数:

start:可写,起始位置,默认从0开始。

end:可写,结束位置,但slice()方法会提取但不会包括end的位置

var arr = [1, 2, 3, "a", "b"]
var arrs = arr.slice(1, 3)
console.log(arr); //[1, 2, 3, 'a', 'b']
console.log(arrs); //[2, 3]
11.toString()方法

功能:将数组直接转换为字符串,不会改变原数组。

var arr = [1, 2, 3, "a", "b"]
var arrs = arr.toString(1, 3)
console.log(arr); //[1, 2, 3, 'a', 'b']
console.log(arrs); //"1,2,3,a,b"
12.valueOf()方法

功能:返回数组的原始值

var arr = [1, 2, 3, "a", "b"]
var arrs = arr.valueOf()
console.log(arr); //[1, 2, 3, 'a', 'b']
console.log(arrs); //[1, 2, 3, 'a', 'b']
13.indexOf()方法

功能:查询数组第一次出现给定的下标,不存在则返回-1

var arr = [1, 2, 3, "a", "b"]
console.log(arr.indexOf(2)); //1
console.log(arr.indexOf("a")); //3
console.log(arr.indexOf("4")); //-1
14.lastIndexOf()方法

功能:查询数组中给定最后一次出现的索引,不存在则返回-1

语法:arr.lastIndexOf(search,fromindex)

search:被查找的元素

fromindex:以起始0的索引开始反向索引

var arr = [2, 5, 9, 2]
console.log(arr.lastIndexOf(2)); //3
console.log(arr.lastIndexOf(8)); //-1
console.log(arr.lastIndexOf(2, 3)); //3
console.log(arr.lastIndexOf(2, -2)); //0
console.log(arr.lastIndexOf(2, -1)); //3
console.log(arr.lastIndexOf(2, 2)); //0
15.forEach()方法

功能:遍历数组,并将元素传递给回调函数,对空数组不会执行回调函数,且无法用break中途跳出循环,也不支持return操作输出,return只用于控制循环是否跳出当前循环。

语法:array.forEach(function(value,index,arr) {}, thisvalue)

参数:

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

thisvalue:可写,传递给函数的值一般用this值,如果这个参数为空,“undefined”会传递给this值

var arr = [11, 22, 33, 44, 55]
arr.forEach(function (item, index, arr) {
   console.log(item, index, arr);
})

执行结果:

16.map()方法

功能:遍历数组,并返回一个新数组,且不会改变原数组,该方法不会对空数组进行检测

语法:array.map(function(value,index,arr) {}, thisvalue)

参数:

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

thisvalue:可写,对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisvalue,或者传入 nullundefined,那么回调函数的 this 为全局对象。

var arr = [
            { name: "张三", age: 35 },
            { name: "李四", age: 36 },
            { name: "王五", age: 30 },
            { name: "老六", age: 30 },
        ]
        var arr1 = arr.map((item, index, array) => {
            item.name = "名字:" + item.name
            return item.name
        })
        console.log(arr1)

执行结果:

17.filter()方法

功能:遍历数组,该方法创建一个新数组,新数组中的元素通过检查数组中符合条件的所有元素,每次循环时传入回调函数,回调函数返回条件,把满足条件的放到新数组中。

语法:array.filter(function(value,index,arr) {}, thisvalue)

参数:

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

thisvalue:对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue “this” 的值为 “undefined”。

var arr = [
            { name: "张三", age: 35 },
            { name: "李四", age: 36 },
            { name: "王五", age: 30 },
            { name: "老六", age: 30 },
        ]
        var arr1 = arr.filter((item, index, array) => {
            item.age += 5
            return item.age > 35
        })
        console.log(arr1)

执行结果:

18.every()方法

功能:遍历数组,并判断数组中每个元素都满足条件,如果有一个条件不满足则返回false,否则返回true。

var arr = [
            { name: "张三", age: 35 },
            { name: "李四", age: 36 },
            { name: "王五", age: 30 },
            { name: "老六", age: 30 },
        ]
        var arr1 = arr.every((item, index, array) => {
            item.age += 5
            //return item.age > 35 返回false
            return item.age > 30 //返回true
        })
        console.log(arr1)
19.some()方法

功能:遍历数组,并判断数组中元素至少有一个满足条件,如果有一个条件满足则返回true,否则返回false。

var arr = [
            { name: "张三", age: 35 },
            { name: "李四", age: 36 },
            { name: "王五", age: 30 },
            { name: "老六", age: 30 },
        ]
        var arr1 = arr.some((item, index, array) => {
            item.age += 5
            //return item.age > 25 返回false
            return item.age > 30 //返回true
        })
        console.log(arr1)
20.reduce()方法

功能:遍历数组,该方法接收一个函数作为累加器,数组中每个值开始缩减,最终计算为一个值。

语法:array.reduce(function(total,value,index,arr) {}, initialvalue)

参数:

total:必写,初始值,或计算结束后的返回值。

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

initialvalue:可写,传递函数的初始值

var arr = [1, 2, 3, 4, 5]
        var arr1 = arr.reduce((prev, item, index, array) => {
            console.log(prev, item, index, array);
            return prev + item
        },0)
        console.log(arr, arr1)

执行结果:

21.reduceRight()方法

功能:用法与reduce相同,但reduceRight()方法是从右往左

22.includes()方法

功能:判断数组中是否包含一个指定值,是返回true,否则返回false

var arr = [1, 2, 3, 4, "b"]
        console.log(arr.includes(4)) //true
        console.log(arr.includes("a")) //false
23.from()方法

功能:将类数组对象或可遍历对象转换成一个真正的数组。

var obj = {
            0: "张三",
            1: 25,
            2: "男",
            length: 3
        }
        var objs = Array.from(obj)
        console.log(obj); //
        console.log(objs);

 

24.find()方法

功能:遍历数组,该方法为数组中每个元素调用一次函数执行,返回数组中满足条件的第一个元素,不存在则返回undefined。

语法:array.find(function(value,index,arr){}, thisvalue)

参数:

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

thisvalue:传递给函数的值一般用 “this” 值。如果这个参数为空,“undefined”会传递给 “this” 值。

var arr = [1, 2, 3, 4, 5, 6]
        var arrs = arr.find(function (a) {
            return a > 4
        })
        console.log(arrs); //5
25.findIndex()方法

功能:遍历数组,该方法为数组中每个元素调用一次函数,返回数组中满足条件的第一个元素的下标,不存在则返回-1

语法:array.findIndex(function(value,index,arr){}, thisvalue)

参数:

value:必写,当前元素。

index:可写,当前元素的索引值。

arr:可写,当前元素所属的数组对象。

thisvalue:传递给函数的值一般用 “this” 值。如果这个参数为空,“undefined”会传递给 “this” 值。

var arr = [11, 22, 33, 44, 5, 6]
        var arrs = arr.findIndex(function (a) {
            return a > 11
        })
        console.log(arrs); //1
26.fill()方法

功能:用一个固定值填充一个数组

参数:

value:必写,填充的值。

start:可选,开始填充的位置。

end:可选,停止填充的位置。

var arr = [11, 22, 33, 44, 5, 6]
        var arrs = arr.fill("填充fill方法", 2, 4)
        //[11, 22, '填充fill方法', '填充fill方法', 5, 6]
        console.log(arrs); 
27.flat()方法

功能:将多维数组“拉平”,变成一维数组,并返回新数组,不会改变原数组(默认拉平一次,自定义拉平需要手动传参,如果想全部拉平,传Infinity)

var arr = [1,2,[3,[4,5,[6]]]]
        var arrs = arr.flat()
        console.log(arrs); //[1, 2, 3, [ 4, 5, [6]]]
        var arrs1 = arr.flat(2)
        console.log(arrs1); //[1, 2, 3, 4, 5, [6]]
        var arrs2 = arr.flat(Infinity)
        console.log(arrs2); //[1, 2, 3, 4, 5, 6]
28.flatMap()方法

功能:flat()和map()组合版,先通过map()返回一个新数组,再将数组拉平(只能拉平一次)

var arr = [11, 22, 33, 44, 55]
            var arrs = arr.flatMap(function (item, index) {
                return [item, index]
            })
        console.log(arrs);//[11, 0, 22, 1, 33, 2, 44, 3, 55, 4]

JS数组常用方法有很多,以下是其中的一些常用方法: 1. Array.push():向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。 2. Array.pop():删除数组的最后一个元素,并返回删除的元素。原数组改变。 3. Array.shift():删除数组的第一个元素,并返回删除的元素。原数组改变。 4. Array.unshift():向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。 5. Array.reverse():反转数组的顺序。原数组改变。 6. Array.sort():对数组进行排序。原数组改变。 7. Array.splice():从数组中删除元素,并可以在指定位置插入新的元素。原数组改变。 8. Array.concat():合并两个或多个数组,生成一个新的数组。原数组不变。 9. Array.join():将数组的所有元素连接成一个字符串。原数组不变。 10. Array.indexOf():返回指定元素在数组中的索引,如果不存在则返回-1。 11. Array.slice():从指定位置截取数组的片段并返回新的数组。原数组不变。 12. Array.forEach():对数组的每个元素执行指定的操作。 13. Array.map():对数组的每个元素执行指定的操作,并返回一个新的数组。 14. Array.filter():根据指定的条件过滤数组的元素,并返回一个新的数组。 15. Array.every():检测数组的所有元素是否都满足指定的条件。 16. Array.some():检测数组的是否存在满足指定条件的元素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值