常用数组总结

检测数组

  • 使用 instanceof
if( value instanceof Array ){
    //操作数组
}
  • 使用 Array.isArray()
if( Array.isArray(value)) {
    //操作数组
}

迭代器方法

  • keys()——  返回数组索引的迭代器
  • values ()—— 返回数组元素的迭代器
  • entries ()—— 返回 索引/值对 的迭代器

使用 ES6 的解构也可以拆分键/值对

const a = ["foo","boo"]
for ( const [idx, element] of a.entries()) {
    //操作数组
}

转换方法(将数组每个值的等效字符拼接成一个逗号分隔的字符串)

  • valueOf () 
  • toString()
  • join()

栈方法(后进先出)

  • push()—— 将任意数量的参数添加到数组的末尾,并返回最新长度
  • pop()——  删除数组最后一项,同时减少数组的length值,返回被删除的项

队列方法(先进先出)

  • shift()—— 删除数组的第一项并返回他,同时减少数组的length值
  • unshift()—— 将任意数量的参数添加到数组的头部,然后返回最新的长度

shift()和 push()、unshift()和 pop()可以模拟队列

排序方法

  • reverse()—— 将数组元素反向排列
  • sort() —— 按照升序或者降序,从新排列数组元素;他可以接收一个比较函数(接收俩参数,第一个参数应该在第二个参数的前面,则返回负值;如果俩个参数相等,则返回0; 如果第一个参数应该在第二个参数后边,则返回正值)
let values = [0,1,2,3]

values.sort((a, b) => a < b ? 1 : a > b ? -1 : 0)

alert(values) // 3,2,1,0

操作方法

  • concat()—— 首先 创建一个当前数组的副本,然后将他的参数添加到副本的末尾,最后返回这个新构建的数组
  • slice()—— 创建一个包含原数组一个或者多个元素的新数组,可以接收一个或俩个参数
  • splice()—— 主要目的是原在数组中间删除、替换、插入元素、可以接收俩个或三个参数

搜索和位置方法

  • indexOf()—— 从数组第一项开始往后搜索,找到返回下标,反之返回-1
  • lastIndexOf()—— 从数组最后一项开始往前搜索,找到返回下标,反之返回-1
  • includes()—— 从数组第一项开始往后搜索,返回布尔值、表示是否找到一个与指定元素匹配的项

断言函数(接收三个参数,当前搜索的元素 ,索引,数组本身)

  • find()—— 从最小的索引开始,返回第一个匹配的元素
  • findIndex()—— 从最小的索引开始、返回第一个匹配的索引

迭代方法

  • every()—— 参数为一个函数(当前项,下标,遍历的数组), 每一项都为 true 返回 true
  • filter()—— 参数为一个函数(当前项,下标,遍历的数组), 函数返回为true的项会组成数组之后返回,(筛选满足给定条件的元素)
  • forEach()—— 参数为一个函数(当前项,下标,遍历的数组), 遍历某一项,没有返回值
  • map()—— 参数为一个函数(当前项,下标,遍历的数组), 将数组的每一项加工处理,并将处理后的每一项组成数组之后返回
  • some()—— 参数为一个函数(当前项,下标,遍历的数组), 只要有一项为 true 返回 true

归并方法(迭代数组所有项,并在此基础上构建一个最终的返回值)

  • reduce()—— 从前往后遍历
arr.reduce(callback,[initialValue])

var sum = arr.reduce(function(prev, cur, index, arr) {
    // 具体逻辑
    
    return prev + cur;
},初始值)

  • reduceRight() —— 从后往前遍历

他们都接收四个参数

  •        提供的初始值 或  上一次调用回调返回的值
  •        数组中当前被处理的元素
  •        当前元素在数组中的索引
  •        调用 reduce 的数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值