js如何优雅地使用数组

  1. Array.indexOf && Array.find
    对于 indexOf MDN文档中描述为:返回数组中给定元素的第一次出现的索引,如不存在返回 -1;在此无需赘述,提起indexOf 不得不说一道比较经典的面试题,废话不说上代码
let Arr = [1,2,3,4,5,6,7,8,9,1,1,1,2,3,3,4,5,6,7,7,87,8]
let noRepeat = [];
Arr.forEach( (item, index) => {
  if(noRepeat.indexOf(item) === -1){
    noRepeat.push(item)
  }
})

Array.find与indexOf 的区别就是 find可以处理对象数组 ,Array.find 的参数为一个回调函数

let Arr = [{a:1},{b:2}]
Arr.find( (item) => {
  if(item.a){
    return item
  }
})  // {a:1}
  1. Array.includes && Array.some
    其实includes 和indexOf 比较相似,只不过indexOf 返回的是索引,而includes 则是单纯的返回bool值,因此includes这个方法初衷就是单纯的看数组中是否有无 某个元素,includes 仅仅适用与简单的数组,如果数组元素是个对象,那样可以用 Array.some来进行判断 上代码
let Arr = [{a:1},{b:2}]
Arr.some( (item) => {
  if(item.a){
    return item
  }
})  // true
  1. Array.filter
    Array.filter是一个十分有用的方法,日常工作中我们常常会用到,它可以通过回调函数来对愿数组进行过滤,返回值为过滤后的数组 ,上代码
let Arr = [{id: 1},{id: 2},{id: 1},{id: 3},{id: 1},{id: 1}]  //过滤掉id 为1 的元素
let FilterArr = Arr.filter( (item) => {
  if(item.id !== 1){
    return item
  } 
})
  1. reduce 关于reduce 上一篇文章已经讲过了 有兴趣的可以看一下上一篇的reduce的应用小例子。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值