分类

按条件取前缀

使用 lodash _.takeWhile 按条件取前缀项

从数组开头开始,直到谓词不再满足为止。

亮点:

  • 使用 lodash _.takeWhile
  • 支持数字和字符串谓词
  • 返回匹配前缀的 JSON

示例:

  • 数组:[1, 2, 3, 1]
  • 谓词:less-than
  • 比较值:3
  • 结果:[1, 2]

输入 JSON 数组

选择取值条件

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

关键信息

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

概览

这是一个基于 lodash `_.takeWhile` 的数组处理工具,用于从数组的起始位置提取元素,直到指定的条件不再满足为止。它支持多种数字、字符串及逻辑谓词,能快速获取有序数据的前缀部分。

适用场景

  • 需要从有序数组(如时间序列、排行榜)中提取连续满足条件的前缀项时。
  • 处理字符串数组,需要获取以特定字符开头、包含或结尾的连续前缀元素时。
  • 清理或过滤数据,希望从头开始直到遇到第一个不符合条件的值(如空值、特定阈值)时。

工作原理

  • 在“数组”输入框中粘贴或输入一个 JSON 格式的数组。
  • 从“谓词类型”下拉菜单中选择一个条件,例如“小于”、“字符串包含”或“为空值”。
  • 如果所选谓词需要,在“比较值”输入框中提供具体的比较值(如数字 `3` 或字符串 `"abc"`)。
  • 工具将执行 `_.takeWhile` 操作,并返回从数组开头到第一个不满足条件的元素之前的所有元素组成的 JSON 数组。

使用场景

提取一个递增数字序列中,所有小于某个阈值的前缀部分。
从一个标签列表中,获取所有以特定关键词开头的连续标签。
处理日志或数据流,提取直到遇到第一个空值或错误标记之前的所有有效记录。

用户案例

1. 提取销售业绩达标前缀

数据分析师
背景原因
分析师有一组按日期排序的每日销售额数据,需要找出从记录开始连续达标(大于等于1000元)的天数。
解决问题
手动遍历数组查找连续达标的前缀部分效率低下。
如何使用
将每日销售额数组 `[1200, 1500, 800, 1100, ...]` 粘贴到“数组”输入框,选择谓词类型为“大于等于”,并在比较值中输入 `1000`。
效果
工具返回 `[1200, 1500]`,表示前两天连续达标,第三天未达标则停止。

2. 过滤产品编码前缀

库存管理员
背景原因
管理员有一个产品编码列表 `['AB-001', 'AB-002', 'AC-001', 'AB-003']`,需要提取所有以“AB-”开头的连续编码。
解决问题
列表中间可能夹杂其他前缀的编码,需要精确提取开头的连续部分。
如何使用
输入产品编码数组,选择谓词类型为“字符串开头”,并在比较值中输入 `"AB-"`。
效果
工具返回 `['AB-001', 'AB-002']`,遇到“AC-001”后停止,即使后面还有“AB-003”也不会包含。

3. 清理API响应数据

开发人员
背景原因
从某个API获取的数据数组中,前面是有效的数据对象,后面可能跟着一些 `null` 或空的占位符。
解决问题
需要快速移除数组末尾的无效数据,只保留从开头开始的连续有效数据。
如何使用
将API返回的数组粘贴到工具中,选择谓词类型为“为真值”(因为有效对象是真值,null是假值)。
效果
工具返回从开头到第一个 `null` 之前的所有有效数据对象组成的数组。

用 Samples 测试

json

相关专题

常见问题

这个工具支持哪些条件类型?

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

所有谓词都需要“比较值”吗?

不是。“为空值”、“为真值”和“为假值”这三种谓词不需要比较值,其他类型都需要。

可以处理对象数组吗?

不可以。当前工具仅支持由数字、字符串、布尔值或 null 组成的简单数组。

输出结果是什么格式?

输出是一个 JSON 数组,包含从原数组开头提取出的所有符合条件的连续元素。

如果数组开头就不满足条件会怎样?

将返回一个空数组 `[]`,因为没有任何元素满足“从开头连续”的条件。

API 文档

请求端点

POST /zh/api/tools/take-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-take-while": {
      "name": "take-while",
      "description": "使用 lodash _.takeWhile 按条件取前缀项",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=take-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]