首页 > 编程语言 > 详细

js数组一些方法

时间:2020-10-09 20:18:16      阅读:34      评论:0      收藏:0      [点我收藏+]

1. indexOf

  用于查找数组中某一个元素第一次出现的脚标,没有则返回-1

var arr = [1, 3 , 5]
            
var arr_indexOf = arr.indexOf(2)  // -1

 

2. push

  往数组尾部添加一个元素,返回数组的长度

  会改变原数组

var arr = [1, 3 , 5]
              
var arr_push = arr.push(7) // 4  arr为[1, 3, 5, 7]

 

3. pop

  删除数组最后一个元素,返回被删除的元素

  会改变原数组

var arr = [1, 3 , 5]
            
var arr_pop = arr.pop() // 5  arr为[1, 3]

 

4. shift

  删除数组第一个元素,返回被删除的元素

  会改变原数组

var arr = [1, 3 , 5]
            
var arr_shift = arr.shift()   // 1  arr为[3, 5]

 

5. unshift

  往数组中开始的位置插入一个元素,返回数组长度
  会改变原数组

var arr = [1, 3 , 5]
            
var arr_unshift = arr.unshift(8)  // 4   arr为[8, 1, 3, 5]

 

6. concat

  连接一个数组,返回一个新的数组

  不会改变原数组

const arr = [1, 3 , 5]
            
var arr_concat = arr.concat([[2, 4], 6])  // [1, 3, 5, [2, 4], 6]

 

7. some

  传入一个回调函数,回调函数参数为数组中的元素,当至少有一个元素满足要求时返回true,反之则为false

  不会改变原数组

var arr = [1, 3 , 5]
            
var arr_some = arr.some(item => item > 3) // true

 

8. every

  传入一个回调函数,回调函数参数为数组中的元素,当所有元素满足要求时返回true,反之则为false(和some类似与/或的逻辑)

  不会改变原数组

var arr = [1, 3 , 5]
            
var arr_every = arr.every(item => item > 3)  // false

 

9. splice

  arr.splice(a, b, c, ...)

  删除数组中从脚标a位置开始到脚标a + b的元素(左闭右开),并将剩余参数从删除位置插入到数组中

  会改变原数组

var arr = [1, 3 , 5]

var arr_splice = arr.splice(1, 1, 7, 9)  // [1, 5, 7, 9]

 

10. forEach

  数组的迭代器,无返回值

  不会改变原数组

var arr = [1, 3 , 5]
            
arr.forEach(item => console.log(item))

 

11. map

  数组的迭代器,返回一个新的数组

  不会改变原数组

var arr = [1, 3 , 5]
            
var arr_map = arr.map(item => item + 1)  // [2, 4, 6]

 

12. sort

  数组排序,传入一个回调函数,回调函数第一个参数为脚标是n的元素,第二个参数为n+1的元素,有返回值,如果返回值小于0则改两个元素互相替换位置

  会改变原数组

var arr = [1, 5, 3]
            
var arr_sort = arr.sort((prev, next)=> prev - next)  

 

13. flat

  将一个二维数组平铺成一维数组

  不会改变原数组

var arr = [[1], [3, [4]], 5]
            
var arr_flat = arr.flat() // [1, 3, [4], 5]

 

14. flatMap

  将一个二维数组平铺成一维数组,同时进行map操作,返回新的数组

  会改变原数组

var arr = [[1], [3], 5]
            
var arr_flatMap = arr.flatMap(item => item + 1)  // [2, 4, 6]

 

15. join

  返回一个以传入参数为间隔拼接数组元素的字符串

  不会改变原数组

var arr = [1, 3, 5]
            
var arr_join = arr.join(‘-‘)  // ‘1-3-5‘

 

16. includes

  判断数组是否存在某个元素,返回布尔值

var arr = [1, 3 , 5]
            
var arr_includes = arr.includes(2) // true

 

17. lastIndexOf

  返回数组中最后一个出现目标元素的脚标

var arr = [1, 3 , 5]
            
var arr_lastIndexOf = arr.lastIndexOf(5)  // 2

 

18. slice

  切割数组,返回一个新的数组,第一个参数为起始位置,第二个参数为结束位置(如果为负数表示数组长度 + 第二个参数),左开右闭

  不会改变原数组

var arr = [1, 3, 5]
            
var arr_slice = arr.slice(1, 8) // [3, 5]

 

19. reverse

  将数组元素倒叙排列

  会改变原数组

var arr = [1, 3 , 5]
            
var arr_reverse = arr.reverse()  // [5, 3, 1]

 

20. find

  查找数组中符合要求的元素,传入一个回调函数,回调函数参数为数组的元素,并且将符合的元素返回,如果查找不到,返回undefined (如果是查找undefined,认为是查找到了还是没有呢)

  不会改变原数组

var arr = [1, 3 , 5]

var arr_find = arr.find(item => item === 3) // 3

 

21. findIndex

  查找数组中符合要求的元素的脚标,传入一个回调函数,回调函数参数为数组的元素,并且将符合元素的脚标返回,如果查找不到,返回-1

  不会改变原数组

var arr = [1, 3, 5]
            
var arr_findIndex = arr.findIndex(item => item === 5)  // 2

 

22. filter

  过滤出符合要求的元素

  不会改变原数组

var arr = [1, 3 , 5]
            
var arr_filter = arr.filter(item => item > 3) // [5]

 

23. copyWithin

  复制数组中的元素,第一个参数为复制的开始位置,第二个为选择复制内容的起始位置,第三个为复制内容的结束位置

  会改变原数组

var arr = [1, 3 , 5]

var arr_copyWithin= arr.copyWithin(2) // [1, 3, 1]

24. fill

  将数组中所有元素映射为

  会改变原数组

var arr = [1, 3 , 5]
            
var arr_fill = arr.fill(2) // [2, 2, 2]

25. reduce  reduceRight

数组的叠加器,reduce按正序遍历,reduceRight按倒序遍历,第一个参数为回调函数,【回调函数第一个参数为上次回调函数返回的结果,第二个参数为当前元素,第三个参数为当前元素脚标】,  第二个参数为初始值,reduce可以用于遍历,

映射,叠加,功能比较强大,有兴趣可以去研究研究redux实现原理

var arr = [1, 3 , 5]
            
var arr_reduce = arr.reduce((main, curr) => main + curr, 0)  // 9

 

js数组一些方法

原文:https://www.cnblogs.com/wings-of-liberty/p/13763201.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!