分类

条件移除元素

使用 lodash 的 _.dropWhile 在满足条件时从数组开头移除元素

此工具从数组开头移除元素,直到谓词首次返回 false 为止。

功能特性:

  • 多种谓词类型,灵活过滤
  • 支持数字和字符串比较
  • 适用于任何数据类型的数组
  • 使用 lodash 的 _.dropWhile 确保可靠操作

示例:
输入:[1, 2, 3, 4, 5]
谓词:小于 3
输出:[3, 4, 5](移除 1 和 2,因为它们 < 3)

谓词类型:

  • less-than: 当值 < n 时移除
  • greater-than: 当值 > n 时移除
  • equals: 当值 === n 时移除
  • not-equals: 当值 !== n 时移除
  • string-contains: 当字符串包含子串时移除
  • string-starts-with: 当字符串以指定前缀开头时移除
  • string-ends-with: 当字符串以指定后缀结尾时移除
  • is-nullish: 当值为 null/undefined 时移除
  • is-truthy: 当值为真值时移除
  • is-falsey: 当值为假值时移除

输入 JSON 数组

选择移除元素的条件

比较值(大多数谓词需要)

关键信息

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

概览

此工具使用 lodash 的 _.dropWhile 函数,根据您指定的条件,从数组的开头移除元素,直到条件首次不再满足为止。它支持多种谓词类型,适用于数字和字符串比较,能高效处理各类数组数据。

适用场景

  • 当您需要清理数据数组的前缀无效项(如测试数据、占位符)时。
  • 当您处理日志或事件流,需要跳过初始的调试或启动信息时。
  • 当您从已排序列表中移除头部不符合条件的元素(如最低分、最低价)时。

工作原理

  • 在“数组”输入框中,粘贴或输入您的 JSON 格式数组。
  • 从“谓词类型”下拉菜单中选择一个条件,例如“小于”或“字符串包含”。
  • 如果所选谓词需要,在“比较值”输入框中提供相应的值(如数字或字符串)。
  • 点击执行,工具将返回移除头部元素后的新数组。

使用场景

数据清洗:移除数组开头的占位符或测试数据,例如 `[null, null, "real_data"]` 经过 `is-nullish` 处理后得到 `["real_data"]`。
日志分析:跳过日志文件开头的系统启动信息,例如从包含 `["DEBUG: start", "INFO: ready", "ERROR: ..."]` 的数组中,使用 `string-starts-with` 匹配 `"DEBUG"` 来移除调试信息。
列表预处理:从已排序的成绩单或价格列表中,移除所有低于某个阈值的头部元素。

用户案例

1. 清理销售数据中的测试记录

数据分析师
背景原因
从API获取的销售记录数组,开头混入了几条用于测试的、金额为0的记录。
解决问题
需要快速移除数组开头所有金额为0的无效记录,以便进行准确的分析。
如何使用
将销售记录数组粘贴到输入框,选择“等于”谓词类型,并在比较值中输入 `0`。
效果
数组开头所有金额为0的记录被移除,剩余的有效销售数据被返回。

2. 分析服务器日志,跳过启动阶段

背景原因
一份服务器日志条目数组,前几条是系统启动时的调试信息,之后才是正常的访问日志。
解决问题
分析时只想关注正常的访问日志,需要自动跳过开头的调试信息。
如何使用
输入日志数组,选择“字符串开始于”谓词类型,比较值设为 `"DEBUG"`。
示例配置
predicateType: "string-starts-with", compareValue: "DEBUG"
效果
所有以“DEBUG”开头的日志条目从数组开头被移除,返回从第一条非调试日志开始的数组。

3. 处理待办事项列表,移除已完成的低优先级任务

背景原因
一个按优先级排序的待办事项对象数组,低优先级且已完成的任务排在最前面。
解决问题
希望生成一个待办列表,自动过滤掉开头已完成的低优先级任务。
如何使用
输入待办事项数组,选择“为真值”谓词类型(假设已完成状态字段为布尔值 `true`)。
效果
数组开头所有已完成(值为 `true`)的任务被移除,返回从第一个未完成任务开始的列表。

用 Samples 测试

json

相关专题

常见问题

这个工具支持哪些谓词类型?

支持小于、大于、等于、不等于、字符串包含、字符串开头匹配、字符串结尾匹配、空值判断、真值判断和假值判断。

可以同时使用多个条件吗?

不可以。每次操作只能选择一个谓词类型和一个比较值。如需复杂逻辑,请考虑在代码中组合使用。

处理大型数组时性能如何?

工具基于 lodash 库,性能良好。它会从头开始顺序检查,一旦条件不满足即停止,不会遍历整个数组。

“比较值”是必填的吗?

不是。对于“为空值”、“为真值”、“为假值”这类谓词,无需填写比较值。其他大多数谓词则需要。

输出结果是什么格式?

输出是一个 JSON 数组字符串,表示移除头部元素后剩余的部分。

API 文档

请求端点

POST /zh/api/tools/drop-while

请求参数

参数名 类型 必填 描述
array textarea 输入 JSON 数组
predicateType select 选择移除元素的条件
compareValue text 比较值(大多数谓词需要)

响应格式

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

AI MCP 文档

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

{
  "mcpServers": {
    "elysiatools-drop-while": {
      "name": "drop-while",
      "description": "使用 lodash 的 _.dropWhile 在满足条件时从数组开头移除元素",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=drop-while",
      "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]