节点-dll

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中的问题跟踪器,如果有匹配的问题已经在管道中,如果没有的话,请继续提出自己的问题.
公关准则:
- 确保包含相应的测试案例
- 慷慨解说代码评论
- 必要时编写文件
- 等待你的批准 等待你的批准
许可证
麻省理工学院