分类

排序插入索引

使用 lodash _.sortedIndex 查找排序数组插入索引

返回在排序数组中保持顺序所需插入的位置索引。

亮点:

  • 使用 lodash _.sortedIndex
  • 适用于已排序 JSON 数组
  • 返回插入索引文本

示例:

  • 数组:[10, 20, 30]
  • 值:25
  • 结果:2

输入已排序的 JSON 数组

要插入的值(JSON 或文本)

关键信息

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

概览

本工具基于 lodash 的 `_.sortedIndex` 函数,用于快速查找一个值在已排序数组中应插入的位置索引,以保持数组的有序性。它接受一个已排序的 JSON 数组和一个目标值作为输入,并返回一个数字索引作为文本结果。

适用场景

  • 需要在不破坏现有排序的前提下,向一个已排序的数组中插入新元素时。
  • 处理大量有序数据(如时间戳、分数、ID),需要高效确定插入点以避免全数组重排时。
  • 在算法或数据处理流程中,需要验证某个值在有序序列中的理论位置时。

工作原理

  • 在“数组”输入框中,粘贴或输入一个已按升序排列的 JSON 数组。
  • 在“值”输入框中,输入你想要插入的值(可以是数字、字符串等,需与数组元素类型兼容)。
  • 工具内部调用 lodash 的 `_.sortedIndex` 算法,计算该值应插入的索引位置。
  • 计算完成后,工具将返回一个表示索引的数字文本(例如 `2`),该索引从 0 开始计数。

使用场景

在数据流处理中,将新的时间戳数据点插入到已排序的时间序列数组中。
在游戏开发中,将玩家的新分数动态插入到本地维护的已排序高分排行榜中。
在算法练习或教学中,演示二分查找或有序数组插入的原理。

用户案例

1. 插入时间序列数据点

数据分析师
背景原因
分析师维护一个按时间排序的传感器读数数组 `[1672531200, 1672617600, 1672704000]`(Unix 时间戳)。现在收到了一个新的读数时间戳 `1672660800`。
解决问题
需要确定这个新时间戳在数组中的正确插入位置,以保持时间顺序。
如何使用
将时间戳数组 `[1672531200, 1672617600, 1672704000]` 粘贴到“数组”框,将新值 `1672660800` 输入到“值”框。
效果
工具返回索引 `2`。这意味着新时间戳应插入到原数组索引 2 的位置(即 `1672704000` 之前),插入后数组为 `[1672531200, 1672617600, 1672660800, 1672704000]`。

2. 更新本地排行榜

背景原因
一个简单的游戏在本地用数组 `[950, 880, 760, 650]` 存储已排序的高分。玩家刚刚获得了 `820` 分。
解决问题
需要将新分数 `820` 插入到排行榜数组的正确位置,以维持从高到低的排序。
如何使用
在“数组”框输入分数数组 `[950, 880, 760, 650]`,在“值”框输入新分数 `820`。
效果
工具返回索引 `2`。新分数 `820` 应插入到索引 2 的位置(即 `760` 之前),更新后的排行榜为 `[950, 880, 820, 760, 650]`。

用 Samples 测试

json, text

相关专题

常见问题

输入的数组必须是已排序的吗?

是的,这是使用本工具的前提。输入数组必须是升序排列的,否则返回的索引将无意义。

支持哪些数据类型?

支持数字、字符串等可比较的类型。数组内元素类型应一致,且插入值的类型应与之兼容。

返回的索引 `2` 是什么意思?

表示该值应插入到数组索引为 2 的位置(即第三个元素之前),插入后数组仍保持升序。

如果数组为空会怎样?

对于空数组,工具将返回索引 `0`,表示应插入到第一个位置。

这个工具和普通的 `indexOf` 有什么区别?

`indexOf` 用于查找数组中已存在元素的索引。本工具用于查找一个(可能不存在的)值为了保持排序而应该插入的位置索引。

API 文档

请求端点

POST /zh/api/tools/sorted-index

请求参数

参数名 类型 必填 描述
array textarea 输入已排序的 JSON 数组
value text 要插入的值(JSON 或文本)

响应格式

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

AI MCP 文档

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

{
  "mcpServers": {
    "elysiatools-sorted-index": {
      "name": "sorted-index",
      "description": "使用 lodash _.sortedIndex 查找排序数组插入索引",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=sorted-index",
      "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]