@akashbabu/node-dll

中文文档
2.0.2发布于 2019/12/22MITTypeScriptESM + CJS零依赖近 30 天下载 2373

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

中文使用文档
文档目录8 节
  1. 导言
  2. 文档
  3. 安装
  4. 样本使用情况
  5. API - 隐藏
  6. API - DLL 项目
  7. 捐款
  8. 许可证

节点-dll Coverage Status Build Status Maintainability

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

导言

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

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

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

文档

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

安装

i @akashbabu/node-dll - S

样本使用情况

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 共发布 5 个版本,首次发布于 2019/12/01;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.2latest2019/12/226 年前
2.0.12019/12/136 年前
2.0.02019/12/046 年前
1.1.02019/12/016 年前
1.0.02019/12/016 年前

关于 @akashbabu/node-dll 的常见问题

@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 和提交记录判断。