# 第 N 项

使用 lodash _.nth 获取指定索引的元素

> 标准页面: https://elysiatools.com/zh/tools/nth-item

- **分类:** Data Processing

- **关键词:** 数组, 索引, 元素, 第n项, lodash

## 概述

返回数组中指定索引的元素。

**亮点：**
- 使用 lodash `_.nth`
- 支持负索引（从末尾计数）
- 返回 JSON 格式的值

**示例：**
- 数组：`["a", "b", "c", "d"]`
- 索引：`-1`
- 结果：`"d"`

## 输入项

- **数组** (textarea): 输入 JSON 数组
- **索引** (number): 从 0 开始的索引（负数从末尾计数）

## 适用场景

- 当需要从数组末尾获取元素（例如最后一个或倒数第二个）时。
- 当需要安全地获取数组中某个位置的元素，避免手动计算索引或处理越界错误时。
- 在数据处理或脚本编写中，需要从已知结构的数组中精确提取特定项时。

## 工作原理

- 在“数组”输入框中，粘贴或输入一个有效的 JSON 数组，例如 `\["a", "b", "c"\]`。
- 在“索引”输入框中，指定一个整数。正数从 0 开始计数，负数从数组末尾开始计数（-1 代表最后一个元素）。
- 工具内部调用 lodash 的 `_.th` 函数处理您的输入。
- 处理完成后，直接返回指定索引位置的元素值（JSON 格式）。

## 使用案例

- 从服务器日志数组中快速提取最后一条记录进行分析。
- 处理 API 返回的列表数据，获取列表中的第一个或最后一个项目。
- 在数据转换流程中，从已知的数组结构中定位并提取特定位置的配置项或值。

## 常见问题

### 负索引是如何工作的？

负索引从数组末尾开始计数。例如，索引 `-1` 返回最后一个元素，`-2` 返回倒数第二个元素，以此类推。

### 如果索引超出数组范围会怎样？

如果索引（正数或负数）的绝对值大于或等于数组长度，工具将返回 `undefined`。

### 输入的数组有什么格式要求？

必须是有效的 JSON 数组格式。例如：`[1, 2, 3]` 或 `["apple", "banana"]`。

### 返回的结果是什么格式？

返回结果是数组中对应索引位置的原始值，并以 JSON 格式呈现。例如，如果元素是字符串，结果会带引号。

### 这个工具和直接用 `array\[index\]` 有什么区别？

核心功能相同，但本工具封装了 lodash 的 `_.nth`，其优势在于对负索引的原生支持，并提供了一个简洁的 Web 界面，无需编写代码即可操作。

## 相关工具

- [路径取值](https://elysiatools.com/zh/tools/get-path): 使用 lodash _.get 按路径取值
- [按键分组](https://elysiatools.com/zh/tools/group-by): 使用 lodash _.groupBy 按派生键分组
- [获取首个元素](https://elysiatools.com/zh/tools/head-item): 使用 lodash _.head 获取数组的第一个元素
- [查找索引](https://elysiatools.com/zh/tools/index-of): 使用 lodash _.indexOf 查找值在数组中的索引
- [获取除最后一个元素](https://elysiatools.com/zh/tools/initial-items): 使用 lodash _.initial 获取除最后一个元素外的所有元素
- [按条件移除](https://elysiatools.com/zh/tools/remove-by-predicate): 使用 lodash _.remove 按条件移除数组元素
- [排序插入索引](https://elysiatools.com/zh/tools/sorted-index): 使用 lodash _.sortedIndex 查找排序数组插入索引
- [数组尾部](https://elysiatools.com/zh/tools/tail-items): 使用 lodash _.tail 获取数组除首项外的元素

## 示例

- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发
- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [D3.js 数据可视化示例](https://elysiatools.com/zh/samples/d3js-data-visualization): 全面的D3.js数据可视化示例，包括图表、地图、动画和交互式可视化
- [Rome JavaScript 工具链示例](https://elysiatools.com/zh/samples/rome): Rome JavaScript 工具链示例，包括配置、代码检查、格式化、打包和项目管理
