满口金牙 2022-05-22 23:57 采纳率: 91.1%
浏览 124
已结题

js 中我选择用数组还是对象,那个效率会好点?

比如 我的菜单 dom, 可以通过下面两种 json 对象生成.

const menuJson1 = {
1:{title:'a',children:{1:{},2:{},3:{}}},
2:{title:'b'},
3:{title:'c'},
4:{title:'d'},

}
const menuJson2 =[
  {key:1,title:'a',children:[{},{},{}]},
  {key:2,title:'b'},
  {key:3,title:'c'},
  {key:4,title:'d'},
]

第一种,是对象,第二种是数组
对象好处是 拿对象的时候,只要给个key 就可以拿到. 删除也给个key就行
而数组,拿对象时,我每时都要遍历找出来, 删也得遍历 找出来

所以,有些迷糊. 我什么时用数组 更效率,什么时侯用对象更加效率!?

  • 写回答

4条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-05-23 00:13
    关注

    数组常用于列表,对于顺序不太重要的一组数据,数组内置方法更多,所以处理数据更加方便,如filter,find,sort等
    对象通常使用来优化代码,如优化if语句

    if (this.type === 'A') {
      this.handleA();
    } else if (this.type === 'B') {
      this.handleB();
    } else if (this.type === 'C') {
      this.handleC();
    } else if (this.type === 'D') {
      this.handleD();
    } else {
      this.handleE();
    }
    
    // key-value方式优化
    let enums = {
      'A': handleA,
      'B': handleB,
      'C': handleC,
      'D': handleD,
      'E': handleE
    }
    function action(val){
      let handleType = enums[val]
      handleType()
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月22日

悬赏问题

  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含