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

如何使用Lodash实现将数组对象的id作为键包裹其余属性

符合Lodash规范的实现方案

你原来的写法没有利用_.map本身直接返回新数组的特性,额外声明外部数组执行push操作属于冗余操作,也产生了不必要的副作用,不符合Lodash的函数式设计理念。

CoffeeScript 版本(适配你原示例的语法)

# 若需要保留原数据中的id字段
updated_data = _.map datas, (data) ->
  _.set {}, data.id, data

# 若需要完全匹配你给出的目标格式,移除值对象内的id字段
updated_data = _.map datas, (data) ->
  _.set {}, data.id, _.omit(data, 'id')

JavaScript 版本

// 保留id字段
const updated_data = _.map(datas, data => ({ [data.id]: data }))

// 移除id字段匹配目标输出
const updated_data = _.map(datas, data => ({ [data.id]: _.omit(data, 'id') }))

写法优势

  • 没有外部变量修改操作,所有转换逻辑收敛在map回调内,符合纯函数特性
  • 利用Lodash内置方法/JS原生计算属性完成对象构建,省略不必要的临时对象声明,代码简洁语义清晰
  • 完全贴合Lodash的API设计规范,熟悉Lodash的开发者可以快速理解逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:24:04