分类

对象继承赋值

使用 lodash _.assignIn 分配自有和继承属性

将来源对象的自有和继承可枚举属性分配到目标对象。

亮点:

  • 使用 lodash _.assignIn
  • 包含继承的可枚举属性
  • 后面的来源会覆盖前面的值

示例:

  • 目标:{"a":1}
  • 来源 1:{"b":2}
  • 来源 2:{"a":3}
  • 结果:{"a":3,"b":2}

输入目标 JSON 对象

第一个来源对象

可选的来源对象

可选的来源对象

关键信息

分类
Data Processing
输入类型
textarea
输出类型
text
样本覆盖
4
支持 API
Yes

概览

这是一个基于 lodash `_.assignIn` 方法的在线工具,用于将一个或多个源对象的自有及继承的可枚举属性,合并到目标对象中。后面的源对象属性会覆盖前面的同名属性。

适用场景

  • 需要将多个配置对象或数据对象合并为一个统一对象时。
  • 处理 JavaScript 对象时,需要确保原型链上的可枚举属性也被合并。
  • 希望用一个或多个源对象来更新或扩展一个目标对象的属性。

工作原理

  • 在“目标对象”输入框中,输入作为合并基础的 JSON 对象。
  • 在“来源”输入框中,依次输入一个或多个要合并的源 JSON 对象。
  • 工具调用 lodash 的 `_.assignIn` 方法执行合并操作。
  • 输出一个合并了所有源对象(包括继承属性)的新对象。

使用场景

合并来自不同模块或文件的默认配置与用户自定义配置。
在数据处理中,将多个来源的数据记录聚合成一个完整的数据对象。
为对象设置一套默认属性值,然后用特定值覆盖其中的一部分。

用户案例

1. 合并应用配置

前端开发者
背景原因
开发一个应用,有一份基础默认配置,同时需要根据不同的部署环境(如开发、生产)覆盖部分配置项。
解决问题
需要将环境特定的配置安全地合并到默认配置中,生成最终的运行时配置。
如何使用
将默认配置对象粘贴到“目标对象”中,将环境配置对象粘贴到“来源1”中。
示例配置
目标对象:{"theme": "light", "apiTimeout": 5000, "debug": true}
来源1:{"apiTimeout": 30000, "debug": false, "env": "production"}
效果
得到合并后的配置:{"theme": "light", "apiTimeout": 30000, "debug": false, "env": "production"}。环境配置覆盖了默认的超时时间和调试开关。

2. 聚合用户资料

背景原因
从用户基本信息接口和用户偏好设置接口分别获取了两部分数据,需要在前端合并成一个完整的用户资料对象。
解决问题
两个接口返回的数据结构不同,需要将它们合并到一个对象中以便统一使用。
如何使用
将基本信息对象作为“目标对象”,将偏好设置对象作为“来源1”进行合并。
示例配置
目标对象:{"id": 1001, "name": "张三", "email": "[email protected]"}
来源1:{"theme": "dark", "language": "zh-CN", "notifications": true}
效果
生成完整的用户资料:{"id": 1001, "name": "张三", "email": "[email protected]", "theme": "dark", "language": "zh-CN", "notifications": true}。

3. 设置对象默认值

背景原因
编写一个函数,接收用户传入的选项对象,但需要确保某些关键选项有合理的默认值。
解决问题
需要将用户选项与一个包含所有默认值的对象合并,用户未指定的选项使用默认值。
如何使用
将包含所有默认值的对象作为“目标对象”,将用户传入的选项对象作为“来源1”。
示例配置
目标对象:{"color": "blue", "size": "medium", "visible": true, "animation": "fade"}
来源1:{"color": "red", "size": "large"}
效果
得到最终选项:{"color": "red", "size": "large", "visible": true, "animation": "fade"}。用户指定了颜色和大小,其他属性使用默认值。

用 Samples 测试

json

相关专题

常见问题

这个工具和普通的对象合并(assign)有什么区别?

主要区别在于 `assignIn` 会合并源对象原型链上可枚举的属性,而普通的 `assign` 或扩展运算符 `...` 通常只合并对象自身的可枚举属性。

最多可以合并几个源对象?

工具提供了三个源对象输入框(来源1、来源2、来源3),其中“来源1”是必填的,“来源2”和“来源3”是可选的。

如果多个源对象有相同的属性名,会怎么处理?

按照输入顺序,后面源对象的属性值会覆盖前面源对象以及目标对象中的同名属性值。

这个操作会修改我输入的原始目标对象吗?

不会。工具返回的是一个合并后的新对象,您输入的目标对象和源对象在过程中不会被修改。

输入必须是严格的 JSON 格式吗?

是的,所有输入框的内容都必须是有效的 JSON 对象格式,例如 `{"key": "value"}`。

API 文档

请求端点

POST /zh/api/tools/assign-in-object

请求参数

参数名 类型 必填 描述
targetObject textarea 输入目标 JSON 对象
source1 textarea 第一个来源对象
source2 textarea 可选的来源对象
source3 textarea 可选的来源对象

响应格式

{
  "result": "Processed text content",
  "error": "Error message (optional)",
  "message": "Notification message (optional)",
  "metadata": {
    "key": "value"
  }
}
文本: 文本

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-assign-in-object": {
      "name": "assign-in-object",
      "description": "使用 lodash _.assignIn 分配自有和继承属性",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=assign-in-object",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]