用于查找数组中某一个元素第一次出现的脚标,没有则返回-1
var arr = [1, 3 , 5] var arr_indexOf = arr.indexOf(2) // -1
往数组尾部添加一个元素,返回数组的长度
会改变原数组
var arr = [1, 3 , 5] var arr_push = arr.push(7) // 4 arr为[1, 3, 5, 7]
删除数组最后一个元素,返回被删除的元素
会改变原数组
var arr = [1, 3 , 5] var arr_pop = arr.pop() // 5 arr为[1, 3]
删除数组第一个元素,返回被删除的元素
会改变原数组
var arr = [1, 3 , 5] var arr_shift = arr.shift() // 1 arr为[3, 5]
往数组中开始的位置插入一个元素,返回数组长度
会改变原数组
var arr = [1, 3 , 5] var arr_unshift = arr.unshift(8) // 4 arr为[8, 1, 3, 5]
连接一个数组,返回一个新的数组
不会改变原数组
const arr = [1, 3 , 5] var arr_concat = arr.concat([[2, 4], 6]) // [1, 3, 5, [2, 4], 6]
传入一个回调函数,回调函数参数为数组中的元素,当至少有一个元素满足要求时返回true,反之则为false
不会改变原数组
var arr = [1, 3 , 5] var arr_some = arr.some(item => item > 3) // true
传入一个回调函数,回调函数参数为数组中的元素,当所有元素满足要求时返回true,反之则为false(和some类似与/或的逻辑)
不会改变原数组
var arr = [1, 3 , 5] var arr_every = arr.every(item => item > 3) // false
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]
数组的迭代器,无返回值
不会改变原数组
var arr = [1, 3 , 5] arr.forEach(item => console.log(item))
数组的迭代器,返回一个新的数组
不会改变原数组
var arr = [1, 3 , 5] var arr_map = arr.map(item => item + 1) // [2, 4, 6]
数组排序,传入一个回调函数,回调函数第一个参数为脚标是n的元素,第二个参数为n+1的元素,有返回值,如果返回值小于0则改两个元素互相替换位置
会改变原数组
var arr = [1, 5, 3] var arr_sort = arr.sort((prev, next)=> prev - next)
将一个二维数组平铺成一维数组
不会改变原数组
var arr = [[1], [3, [4]], 5] var arr_flat = arr.flat() // [1, 3, [4], 5]
将一个二维数组平铺成一维数组,同时进行map操作,返回新的数组
会改变原数组
var arr = [[1], [3], 5] var arr_flatMap = arr.flatMap(item => item + 1) // [2, 4, 6]
返回一个以传入参数为间隔拼接数组元素的字符串
不会改变原数组
var arr = [1, 3, 5] var arr_join = arr.join(‘-‘) // ‘1-3-5‘
判断数组是否存在某个元素,返回布尔值
var arr = [1, 3 , 5] var arr_includes = arr.includes(2) // true
返回数组中最后一个出现目标元素的脚标
var arr = [1, 3 , 5] var arr_lastIndexOf = arr.lastIndexOf(5) // 2
切割数组,返回一个新的数组,第一个参数为起始位置,第二个参数为结束位置(如果为负数表示数组长度 + 第二个参数),左开右闭
不会改变原数组
var arr = [1, 3, 5] var arr_slice = arr.slice(1, 8) // [3, 5]
将数组元素倒叙排列
会改变原数组
var arr = [1, 3 , 5] var arr_reverse = arr.reverse() // [5, 3, 1]
查找数组中符合要求的元素,传入一个回调函数,回调函数参数为数组的元素,并且将符合的元素返回,如果查找不到,返回undefined (如果是查找undefined,认为是查找到了还是没有呢)
不会改变原数组
var arr = [1, 3 , 5] var arr_find = arr.find(item => item === 3) // 3
查找数组中符合要求的元素的脚标,传入一个回调函数,回调函数参数为数组的元素,并且将符合元素的脚标返回,如果查找不到,返回-1
不会改变原数组
var arr = [1, 3, 5] var arr_findIndex = arr.findIndex(item => item === 5) // 2
过滤出符合要求的元素
不会改变原数组
var arr = [1, 3 , 5] var arr_filter = arr.filter(item => item > 3) // [5]
复制数组中的元素,第一个参数为复制的开始位置,第二个为选择复制内容的起始位置,第三个为复制内容的结束位置
会改变原数组
var arr = [1, 3 , 5] var arr_copyWithin= arr.copyWithin(2) // [1, 3, 1]
将数组中所有元素映射为
会改变原数组
var arr = [1, 3 , 5] var arr_fill = arr.fill(2) // [2, 2, 2]
数组的叠加器,reduce按正序遍历,reduceRight按倒序遍历,第一个参数为回调函数,【回调函数第一个参数为上次回调函数返回的结果,第二个参数为当前元素,第三个参数为当前元素脚标】, 第二个参数为初始值,reduce可以用于遍历,
映射,叠加,功能比较强大,有兴趣可以去研究研究redux实现原理
var arr = [1, 3 , 5] var arr_reduce = arr.reduce((main, curr) => main + curr, 0) // 9
原文:https://www.cnblogs.com/wings-of-liberty/p/13763201.html