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

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日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)