js 数组方法

本文详细介绍了JavaScript中push(), pop(), unshift(), shift(), join(), sort(), concat(), 等关键数组方法,展示了如何高效管理和操作数组数据,以及如何利用sort()和map()进行排序和转换。
摘要由CSDN通过智能技术生成

1. push() 和 pop()

push() 方法可以向数组末尾添加一个或多个元素

pop() 方法可以删除数组最后一个元素,并返回被删除的元素

2. unshift() 和 shift()

unshift() 方法可以向数组的开头添加一个或多个元素

shift() 方法可以删除数组开头的一个元素,并返回被删除的元素

3. join()

join() 方法可以将数组转换成字符串,默认使用逗号分隔

let arr = [1,2,3];

console.log(arr.join()); // 1,2,3
console.log(arr.join("#")); // 1#2#3
// 分隔符可自定义

4. sort()

sort() 方法可以将数组元素排序,数组元素可以是字母或数字,默认按升序排列

注意: 使用数字排序,你必须通过一个函数作为参数来调用,函数指定数字按升序还是降序排列

let arr = [5,10,80,6,77];

console.log(arr.sort()); // [10,5,6,77,80]

console.log(arr.sort((a,b) => a - b)); // [5, 6, 10, 77, 80]
console.log(arr.sort((a,b) => b - a)); // [80, 77, 10, 6, 5]

5. concat()

concat() 方法用于连接两个或多个数组,并返回一个新数组

let arr = [1, 2, 3]; 
let arr1 = ["a", "b", "c"];

console.log(arr.concat(arr1)) // [1, 2, 3, "a", "b", "c"]

6. isArray()

isArray() 方法可以判断一个对象是否为数组

7. reverse()

reverse() 方法用于翻转数组

let arr = [1, 2, 3];
console.log(arr.reverse()) // [3, 2, 1]

8. toString()

toString() 方法可以将数组转换为字符串,返回转换过的字符串,不影响原数组

9. slice()

slice(start,end) 方法用于分割数组,并返回一个新的数组,里面参数可选,从start参数开始的元素到end参数处结束,但不包括这两个

let arr = [1, 2, 3, 4, 5];

console.log(arr.slice()); // [1, 2, 3, 4, 5]
console.log(arr.slice(1, 3)); // [2, 3]
console.log(arr.slice(-5, -3)); // [1, 2]

10. splice()

splice() 方法可以从数组中添加或删除项目,返回删除的项目,会改变原数组

let arr = [1, 2, 3, 4, 5];

console.log(arr.splice(2, 1)); // [3]
// 第一个参数是元素的索引(必填),第二个参数是删除的个数,填0则不会删除(可选)
console.log(arr); // [1, 2, 4, 5]
console.log(arr.splice(1, 1, 3)); // [2]
// 第三个或之后的参数表示要添加的项目(可选)
console.log(arr); // [1, 3, 4, 5]

11. indexOf() 和 lastIndexOf()

indexOf(val,index) 方法在数组中寻找指定元素,并返回其位置,val表示要搜索的元素(必填),index表示起始位置(可选)

注意: 搜索从头开始(从指定位置开始),未找到返回-1,若val出现多次,则返回第一次出现的位置

lastIndexOf(val,index) 用法与上面类似,区别是从数组末尾开始

12. valueOf()

valueOf() 方法返回该数组,不改变原数组

13. copyWithin()

copyWithin(target,start,end) 方法将数组元素复制到数组中的另一个位置,并覆盖原数组

target表示复制到的索引位置(必填)start表示开始的位置(可选)end表示结束的位置(可选)

let arr = [1, 2, 3, 4, 5];

console.log(arr.copyWithin(2, 0, 2)); // [1, 2, 1, 2, 5]
console.log(arr); // [1, 2, 1, 2, 5]

14. fill()

fill(val,start,end) 方法用静态值替换数组中的指定元素,会覆盖原数组

val表示用于替换的值(必填)start表示开始的索引可选)end表示结束的索引(可选),若不指定开始和结束的位置,则替换所有元素

let arr = [1, 2, 3, 4, 5];

console.log(arr.fill("a",1,2)); // [1, "a", 3, 4, 5]
console.log(arr.fill("b")); // ["b", "b", "b", "b", "b"]
console.log(arr); // ["b", "b", "b", "b", "b"]

15. from()

from() 方法可将字符串转化为数组

console.log( Array.from("abcdefg"));
// ["a", "b", "c", "d", "e", "f", "g"]

16. includes()

includes(val,start) 方法用于确定数组是否包含指定的元素,若包含返回true,不包含返回false

val表示要搜索的元素(必填)start表示起始位置(可选),默认为0

17. keys()

keys() 方法返回带有数组键的 Array Iterator 对象

18. forEach()

forEach(function(val,index,arr),thisval) 方法对数组进行循环遍历,按顺序给每个元素调用一次函数,该方法没有返回值

val当前元素(必填),index当前索引(可选),arr当前原数组(可选),thisval要传递给函数用作this的值(可选)

19. map()

map(function(val,index,arr),thisval) 方法按顺序为数组中每个元素调用一次提供的函数,返回每次调用函数的结果组成的新数组,不会改变原数组

参数与forEach用法一样

let arr = [1, 2, 3, 4, 5];

console.log(arr.map(val => val * 2)); // [2, 4, 6, 8, 10]

20. filter()

filter(function(val,index,arr),thisval) 方法过滤数组,返回满足条件的新数组,不会改变原数组

let arr = [1, 2, 3, 4, 5];

console.log(arr.filter(val => val > 3)); // [4, 5]
console.log(arr); // [1, 2, 3, 4, 5]

21. some()

some(function(val,index,arr),thisval) 方法判断数组中是否有满足条件的元素,若有返回true(不检查之后的元素),若无返回false

22. entries()

entries() 方法返回带有键/值对的 Array Iterator 对象

23. every()

every(function(val,index,arr),thisval) 方法判断数组中每一项是否满足条件,若所有都满足返回true,有一项不满足返回false

24. find()

find(function(val,index,arr),thisval) 方法查找满足条件的元素,找到了就返回该元素的值(不继续查找),没找到返回undefined

25. findIndex()

findIndex(function(val,index,arr),thisval) 方法查找满足条件的数组元素,满足的话返回该元素的索引(不继续查找),否则返回-1

26. reduce() 和 reduceRight()

reduce(function(total,val,index,arr),初始值) 方法使用指定函数将数组缩减为单个值(返回计算后最终的结果)从左到右的值依次调用函数

total(累加器)表示初始值或函数返回的结果,val当前值,index当前索引(可选),arr当前数组(可选),初始值(可选)

reduceRight() 方法用法一致,顺序不同(从右到左)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值