分类

对象默认值

使用 lodash _.defaults 为对象填充默认值

为目标对象的未定义属性分配默认值。

亮点:

  • 使用 lodash _.defaults
  • 只填充 undefined 属性
  • 后面的来源会先应用

示例:

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

输入目标 JSON 对象

第一个来源对象

可选的来源对象

可选的来源对象

关键信息

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

概览

这是一个使用 lodash `_.defaults` 方法为对象填充默认值的在线工具。它能将一个或多个来源对象的属性,安全地合并到目标对象中,仅当目标对象的对应属性为 `undefined` 时才会填充,确保目标对象已有的值不被覆盖。

适用场景

  • 需要为配置对象或数据对象设置一系列默认值,但不想覆盖已有的自定义设置时。
  • 在合并多个数据源时,希望优先保留第一个对象(目标对象)的值,仅用后续对象填补缺失字段时。
  • 处理 API 响应或用户输入数据,需要确保某些关键字段总有合理的后备值时。

工作原理

  • 在“目标对象”输入框中,输入您要填充默认值的原始 JSON 对象。
  • 在“来源 1”输入框中,输入包含默认值的第一个来源对象。此为必填项。
  • 根据需要,在“来源 2”和“来源 3”输入框中添加更多来源对象(可选)。
  • 工具将按顺序(来源1 -> 来源2 -> 来源3)将来源对象的属性应用到目标对象,仅填充目标对象中值为 `undefined` 的属性,最终输出合并后的结果。

使用场景

合并多层配置:将用户自定义配置、环境特定配置和全局默认配置安全地合并成一个最终配置对象。
数据初始化:为从数据库或 API 获取的数据记录填充缺失的默认状态或标志位。
表单预处理:在提交表单数据前,为可选的字段填充系统预设的默认值,确保数据结构的完整性。

用户案例

1. 合并 API 请求配置

前端开发者
背景原因
在调用一个 API 时,需要为请求设置默认的 headers 和 timeout,但允许在特定调用中覆盖部分设置。
解决问题
需要将用户传入的配置与全局默认配置合并,确保未指定的选项有合理的默认值,且不覆盖用户明确设置的值。
如何使用
将用户传入的配置对象作为“目标对象”,将全局默认配置作为“来源 1”。
示例配置
{
  "url": "/api/data",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json"
  }
}
效果
合并后的配置对象包含了用户指定的 `url` 和 `method`,同时自动填充了默认的 `headers` 和 `timeout`(假设默认配置中有 `timeout: 5000`)。

2. 设置表单字段默认值

全栈工程师
背景原因
一个用户设置页面,表单包含多个可选字段。当用户首次访问或某些字段未保存过值时,需要显示系统默认值。
解决问题
需要将数据库中存储的用户偏好(可能不完整)与系统定义的默认偏好合并,生成完整的表单初始数据。
如何使用
将从数据库读取的用户偏好对象作为“目标对象”,将系统默认偏好对象作为“来源 1”。
效果
表单成功加载,用户已设置的偏好(如主题色)被保留,而未设置的字段(如通知频率)则显示为系统默认值。

用 Samples 测试

json

相关专题

常见问题

这个工具是做什么的?

它使用 lodash 的 `_.defaults` 方法,为一个目标对象填充来自其他来源对象的默认值,只填充目标对象中不存在(值为 `undefined`)的属性。

它和 `Object.assign` 有什么区别?

`Object.assign` 会直接覆盖目标对象的同名属性,而本工具使用的 `_.defaults` 只会在目标属性为 `undefined` 时才进行填充,能更好地保护目标对象的现有值。

如果提供了多个来源对象,合并顺序是怎样的?

合并顺序是从“来源 1”开始,然后是“来源 2”,最后是“来源 3”。但请注意,由于只填充 `undefined` 属性,靠后来源的值只有在前面所有来源都未提供该属性时才会生效。

这个工具会修改我输入的原始对象吗?

不会。工具内部执行合并操作后,会生成并输出一个新的对象结果,您输入的原始 JSON 对象不会被改变。

它支持哪些数据类型?

输入和输出都必须是有效的 JSON 对象(即键值对集合)。对象的值可以是字符串、数字、布尔值、数组、嵌套对象等任何 JSON 支持的数据类型。

API 文档

请求端点

POST /zh/api/tools/defaults-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-defaults-object": {
      "name": "defaults-object",
      "description": "使用 lodash _.defaults 为对象填充默认值",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=defaults-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]