js数组中一些实用的方法(forEach,map,filter,find)

本文详细介绍了JavaScript中常用的数组遍历方法,包括forEach、map、filter和find,通过实例展示了它们的使用场景、特点和区别,并与for循环进行了性能对比,帮助开发者更好地理解和选择合适的遍历方法。
摘要由CSDN通过智能技术生成

虽互不曾谋面,但希望能和你成为笔尖下的朋友

以读书,技术,生活为主,偶尔撒点鸡汤

不作,不敷衍,意在真诚吐露,用心分享

点击左上方,可关注本刊

(点击绿图标,可收听音频)

撰文 | 川川

VX-ID:suibichuanji

点击文末左下方阅读原文,可看视频内容

前言

撰文:川川

您将在本文中学习到

  • for循环与forEach/map/filter/find的一个使用对比

  • 同for循环性能的一个比较

是不是一提到循环,就条件反射的只知道for循环呢,那么本文就是你想要知道的

·  正  ·  文  ·  来  ·  啦  ·

需求场景: 假若后端返回这么一个json数据格式,如下所示,我们需要拿到返回对象中的数组项,或者根据某些指定的条件,取特定的值,然后渲染到页面当中去,例如:拿name属性值

{
   "ret":true,
   "data":{
       "headerTitle":"群成员",
       "members":{
         "A":[
            {"id":"0A1","name":"小爱","imgPhoto","http://default.png","phoneNumber":1333344,“age”:18},
          ],
         "B":[],
         "C":[],
         "D":[
            {"id":"0D1","name":"小兵","imgPhoto","http://default.png","phoneNumber":14343344,"age":19},
         ],
         "E":[],
         "F":[],
         "H":[
            {"id":"0H1","name":"黄药师","imgPhoto","http://default.png","phoneNumber":14343344
         }],
         "L":[
            {"id":"0L1","name":"小
             L1","imgPhoto","http://default.png","phoneNumber":14343344,"age":20},
            {"id":"0L2","name":"小L1","imgPhoto","http://default.png","phoneNumber":14343344,"age":22}
            {"id":"0L3","name":"小L2","imgPhoto","http://default.png","phoneNumber":14343344,"age":21}
         ]
         }
         }
}

对应的UI渲染图结果如下所示

(客人到家,换鞋太麻烦,弄个鞋套机,省事方便)

从数组对象中拿到特定的值渲染到页面当中,一些新增数组的方法就很有用了,单纯靠一个for循环就很难搞定了

目标:取对象中的值,然后循环遍历数组

Es5实现方法:先通过对象,方式拿到数组对象,然后for循环,拿到数组项

不同的框架代码中实现的方式语法表现有些不一样

Angular中

// array表示要遍历的数组,obj表示遍历时的每个元素,index表示遍历数组的下标,当然ng中提供 ng-repeat指令也是可以循环遍历
angular.forEach(array,funciton(obj,index){
 // dosomething
}

React中:

react中父组件向子组件传值,同样,使用最多是map方法

Vue中

vue中比较粗暴,直接用指令v-for="item in items"可以遍历,比较暴力,下面的是伪代码,仅供参考

var members = {}; // 初始化一个空对象,用于接收后台要返回的对象,然后通过DOM(innerHTML方式,字符串拼接)操作,将数据内填充到页面中指定的位置,当然下面的是伪代码模拟一下
axios.get("/api/mock/linker.json")
.then(res=>{
  res = res.data;
  if(res.ret == true){
   let data = res.data;
   this.members = data.members;
  }
})
function showName(){
  for(key in this.members){
     for(var i=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值