满口金牙 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日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。