You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化基于for循环的JavaScript汽车对象分组代码(命令式风格)

命令式风格优化汽车数组分组代码

原代码的核心逻辑没问题,但部分写法可以更直观,减少困惑。以下是优化后的命令式实现:

const cars = [
  { name: 'BMW', year: 2000 },
  { name: 'Audi', year: 2000 },
  { name: 'BMW', year: 1515 },
  { name: 'BMW', year: 1111 },
  { name: 'Mercedez Benz', year: 2000 },
  { name: 'Audi', year: 2017 },
  { name: 'Honda', year: 2000 },
];
const result = {};
for (let i = 0; i < cars.length; i++) {
  const car = cars[i];
  const brandGroup = result[car.name];
  if (!brandGroup) {
    result[car.name] = [car];
  } else {
    brandGroup.push(car);
  }
}
console.log('result', result);

优化说明

  • 减少重复属性访问:把当前循环的cars[i]存入变量car,同时取出result[car.name]到brandGroup,避免多次读取相同属性,代码更简洁,也能小幅提升性能。
  • 简化初始化逻辑:原代码用[result[cars[i].name]] = [[cars[i]]];这种解构写法完全没必要,直接赋值[car]创建初始数组,可读性更强,不会造成理解困惑。
  • 逻辑更清晰:通过变量名明确每一步的意图,比如brandGroup直接指代当前品牌的分组数组,无需反复解读属性访问的含义。

内容的提问来源于stack exchange,提问作者Netty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:35:15