# @akashbabu/node-dll 中文文档

规范地址：https://npmcn.com/package/%40akashbabu/node-dll/

版本：2\.0\.2
npm 元数据更新时间：2022-04-04T12:28:14.969Z
中文译文更新时间：2026-11-06T20:44:58.006Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40akashbabu/node-dll
原文对照：https://npmcn.com/package/%40akashbabu/node-dll/?lang=original
项目主页：https://github.com/AkashBabu/node-dll#readme
源码仓库：https://github.com/AkashBabu/node-dll

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：38.8 kB，12 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=8
- 运行依赖：0 个
- 首次发布：2019-12-01T11:43:14.811Z
- 最新版本发布：2019-12-22T07:39:39.961Z
- 近 30 天下载量：2373（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

Javascript 项目的 DLL( 杜伯链接列表) 库

## 安装

```sh
npm install @akashbabu/node-dll
```

也可以使用：`pnpm add @akashbabu/node-dll`、`yarn add @akashbabu/node-dll`、`bun add @akashbabu/node-dll`

## README

# 节点-dll [![Coverage Status](https://coveralls.io/repos/github/AkashBabu/node-dll/badge.svg?branch=master)](https://coveralls.io/github/AkashBabu/node-dll?branch=master) [![Build Status](https://travis-ci.com/AkashBabu/node-dll.svg?branch=master)](https://travis-ci.com/AkashBabu/node-dll) [![Maintainability](https://api.codeclimate.com/v1/badges/c7054adbf0195cce8778/maintainability)](https://codeclimate.com/github/AkashBabu/node-dll/maintainability)

DLL( Doubly 链接列表) Javascript 项目的执行

## 导言

Doubly链接列表(DLL)在某种情况下是不可避免的,在切换一个数组时偏好性能(可能更多,但这主要是我的PoV). 因此,这个库是用一个简单而强大的界面创建的,用于与基础 `DLL` 计划.

这个库是用打字符写成的,用于强大的API和类型支持.

每一个方面都被淡化了,仔细考虑尽量减少引入新的bug.

## 文档

API方法名称被仔细选择,以接近等分数方法相匹配,因此学习曲线最小,适应性更高. 但是,有些方法不可能有一个不同的名字,我们不得不用这些方法的名称说服自己.

## 安装

> i @akashbabu/node-dll - S

## 样本使用情况

```TS
import {DLL, DLLItem} from '@akashbabu/node-dll';

const dll = new DLL<string>();

const dllItem: DLLItem<string> = dll.push('foo');
console.log(dllItem.data) // => foo

console.log(dll.length) // => 1

dll.remove(dllItem)
console.log(dll.length) // => 0

dll.push('foo')
dll.unshift('bar')

const headItem = dll.head
console.log(headItem.data) // => bar

const headData = dll.shift()
console.log(headData) // => bar

console.log(dll.head.data) // => foo

dll.clear()
console.log(dll.length) // => 0

const firstItem = dll.push('first')
dll.push('third')

dll.appendAfter(firstItem, 'second')

dll.forEach((item, i) => {
  console.log(`${i + 1}) ${item}`);
})
// => 1) first
// => 2) second
// => 3) third


console.log(dll.map((item, i) => `${i + 1}) ${item}`));
// => ["1) first", "2) second", "3) third"]

```

### API - 隐藏

#### 新建 DLL ():

这创造了一个新的实例: `DLL`。 。 。 .  
T - > 注意到 DLL 中保存的数据类型

##### 标题: DLL 项目 {} 无效

返回列表中的第一个项目

##### 尾声: DLL 项目 QQ 无效

返回列表中最后一个项目

##### 长度: 数字

返回列表的长度

##### .shift (): T 未定义

删除并返回列表中的第一个项目。 回返 `undefined` 如果列表为空

##### .unshort(数据:T):无效

将给定的项目添加到 DLL 标题( 与 Array. unship 逻辑相同)

##### .for (cb): (数据: T, i: 数字) QQ空: 无效

横穿整个 DLL

##### 地图(cb): (数据: T, i: 数字) => U: U\[\]

横穿整个 DLL 并返回生成的数组 .  
U - > 注意返回类型 `cb`(回电)

##### .push(数据:T): DLL 项目

将给定的项目添加到 DLL 尾部并返回所添加的项目

##### : DLL 项目 数据: T: DLL 项目

在 DLL 中给定的 dll 项目后添加给定的数据并返回所添加的项目

##### .remove( dll 项目: DLL 项目):布尔

从 DLL 中删除给定的项目, 如果删除成功则返回为真

##### 清晰( )

删除 DLL 中的所有项目

### API - DLL 项目

DLL 项目只能读取到 `prev` 财务报告和审定财务报表 `next` 属性,这是为了确保用户不会无意地改变它们(这可能会弄乱整个DLL),从而减少出错的表面.

##### 数据

通过此属性设定/ 获取 DLL 项目的数据值

##### 预览

通过此属性获取 DLL 项目的预览值

##### 下一个

通过此属性获取 DLL 项目的下个值

## 捐款

欢迎所有的贡献!

但是,在提出任何问题之前,请检查在github中的问题跟踪器,如果有匹配的问题已经在管道中,如果没有的话,请继续提出自己的问题.

公关准则:

-   确保包含相应的测试案例
-   慷慨解说代码评论
-   必要时编写文件
-   等待你的批准 等待你的批准

## 许可证

麻省理工学院

## 常见问题

### @akashbabu/node-dll 是什么？

Javascript 项目的 DLL\( 杜伯链接列表\) 库

### 如何安装 @akashbabu/node-dll？

在项目目录运行 npm install @akashbabu/node-dll，或使用 pnpm add / yarn add / bun add。

### @akashbabu/node-dll 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @akashbabu/node-dll 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @akashbabu/node-dll 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=8。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @akashbabu/node-dll 可以商用吗？

@akashbabu/node-dll 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @akashbabu/node-dll 的下载量有多少？

根据 npm 官方下载统计，@akashbabu/node-dll 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,373 次，日均约 79 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @akashbabu/node-dll 还在维护吗？

最新版本 2\.0\.2 发布于 2019/12/22（6 年前）；至今共发布 5 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/12/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

