# 📡【前端技术雷达】2024年9月第4周

# 实用的JS对象分组静态方法Object.groupBy() (opens new window)

  1. Object.groupBy() 是一种新的静态方法,用于根据某个键对对象数组进行分组。

  2. 所有现代浏览器都已经支持该方法,Safari 最晚支持于 2024 年 4 月。

  3. 使用示例:可以通过以下代码对对象数组进行分组:

    const data = [
        { id: 1, name: '张三' },
        { id: 3, name: '李四' },
        { id: 4, name: '王二' },
        { id: 2, name: '张三' }
    ];
    
    const result = Object.groupBy(data, ({ name }) => name);
    console.log(result);
    
  4. 输出结果为:

    {
        "张三": [{ id: 1, name: '张三' }, { id: 2, name: '张三' }],
        "李四": [{ id: 3, name: '李四' }],
        "王二": [{ id: 4, name: '王二' }]
    }
    
  5. 方法用法为 Object.groupBy(items, callbackFn),其中 items 是被分组的对象数组,callbackFn 是用于提取分组键的函数。

  6. 提供了 Polyfill 代码,以支持旧版浏览器。

  7. 该方法在实际项目中的应用,能够简化数据处理,减少额外的分组逻辑。

# JavaScript Weekly (opens new window)

  1. Oracle, It’s Time to Free JavaScript.

    • Oracle拥有“JavaScript”商标长期以来引发争议。
    • 这是首次认真尝试改变这一点,必要时将向USPTO提出申请。
    • 支持者可通过签署公开信参与,众多JavaScript知名人士已加入。
  2. Bun的创建者表示

    • 这是“一个我上个月星期六偶然开发的功能,纯粹是为了好玩”。
  3. ts-blank-space: Fast Type-Stripping TypeScript to JS Compiler

    • 旨在成为最快的TS到JS编译器(比tsc快5.6倍)。
    • 类型被简单地替换为空格,保留JS代码的坐标,消除对sourcemaps的需求。
  4. 简要发布

    • Fastify v5: 受Express启发的Node.js高性能网络框架。
    • Astro 5 Beta: Astro继续推出v5.0版本。
    • Node.js v22.9: 新增util.getCallSite函数以获取当前执行的堆栈跟踪。
    • Hono 4.6: 新增上下文存储中间件的“任何运行时”Web应用框架。
  5. ViteConf在10月3日举行

    • StackBlitz将在ViteConf '24的主题演讲中提升标准,值得期待。
  6. React 19 Cheat Sheet

    • Kent C Dodds提供的React 19新特性速查表,附带简短代码示例。
  7. ts-remove-unused: 从TypeScript项目中删除未使用的代码

    • 工具可自动修复未使用的导出,删除无引用导出的模块。

# Node Weekly (opens new window)

  1. Execa v9.4.0 发布,提供更完整的体验。

  2. 观看一段名为《从 Node.js 到 Deno:一切是如何开始的》的九分钟短片,讲述了 Deno 的起源,适合快速了解替代 JavaScript 运行时的动机。

  3. Memetria 提供安全、可扩展的 Redis 托管,具有大键追踪和详细性能指标等功能,提升开发体验。

  4. JavaScript 社区呼吁 Oracle 发布 JavaScript 商标,欢迎大家参与签署公开信。

  5. ViteConf 将于 10 月 3 日举行,StackBlitz 将在大会上进行主题演讲,期待精彩内容。