# @blakeembrey/deque 中文文档

规范地址：https://npmcn.com/package/%40blakeembrey/deque/

版本：1\.0\.5
npm 元数据更新时间：2022-04-04T19:24:11.030Z
中文译文更新时间：2026-11-08T06:09:06.982Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40blakeembrey/deque
原文对照：https://npmcn.com/package/%40blakeembrey/deque/?lang=original
项目主页：https://github.com/blakeembrey/deque
源码仓库：https://github.com/blakeembrey/deque

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

- 包体积（解压后）：58.6 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2018-09-10T01:31:44.510Z
- 最新版本发布：2019-02-19T02:09:11.823Z
- 近 30 天下载量：1092597（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 0 个）

## 中文简介

Deques 是对堆栈和队列的概括

## 安装

```sh
npm install @blakeembrey/deque
```

也可以使用：`pnpm add @blakeembrey/deque`、`yarn add @blakeembrey/deque`、`bun add @blakeembrey/deque`

## README

# 节点

[![NPM version](https://img.shields.io/npm/v/@blakeembrey/deque.svg?style=flat)](https://npmjs.org/package/@blakeembrey/deque) [![NPM downloads](https://img.shields.io/npm/dm/@blakeembrey/deque.svg?style=flat)](https://npmjs.org/package/@blakeembrey/deque) [![Build status](https://img.shields.io/travis/blakeembrey/deque.svg?style=flat)](https://travis-ci.org/blakeembrey/deque) [![Test coverage](https://img.shields.io/coveralls/blakeembrey/deque.svg?style=flat)](https://coveralls.io/r/blakeembrey/deque?branch=master)

> 德克是堆叠和队列的通称(名称被发音为"deck"并被简称为"双分队"). - 说吧 [蟒 `collections`](https://docs.python.org/3/library/collections.html#collections.deque)。 。 。 .

## 安装

```
npm install @blakeembrey/deque --save
```

## 使用量

-   `size` 返回点中的元素数.
-   `push(x)` 添加 `x` 右侧的道克.
-   `pushLeft(x)` 添加 `x` 向左侧去.
-   `clear()` 将所有元素从deque中去掉,以 0 为长度 .
-   `extend(iterable)` 通过从可执行性中附加元素来扩展曲面的右侧.
-   `extendLeft(iterable)` 通过从可执行性中附加元素来扩展去向的左侧.
-   `peek(i)` 在索引中返回元素 `i` 在大厅.
-   `indexOf(x, start?)` 返回位置 `x` 在大厅.
-   `has(x)` 返回布尔表示是否 `x` 是在节奏.
-   `insert(i, x)` 插入 `x` 进入位置上 `i`。 。 。 .
-   `pop()` 将一个元素从定点右侧删除并返回。 如果没有元素,则丢出 `RangeError`。 。 。 .
-   `popLeft()` 返回并返回一个元素 从左侧deque。 如果没有元素,则丢出 `RangeError`。 。 。 .
-   `delete(i)` 删除位置值 `i`。 。 。 .
-   `reverse()` 倒置位置的装饰元素 .
-   `rotate(n=1)` 旋转曲轴 `n` 步入右边.
-   `entries()` 返回一个永恒的德克.
-   `@@iterator()` 返回一个永恒的德克.

```js
import { Deque } from '@blakeembrey/deque'

const d = new Deque('ghi')

for (const value of d) {
  console.log(value.toUpperCase()) //=> G H I
}

d.push('j')
d.pushLeft('f')
d //=> Deque(['f', 'g', 'h', 'i', 'j'])

d.pop() //=> 'j'
d.popLeft() //=> 'f'

Array.from(d) //=> ['g', 'h', 'i']

d.peek(0) //=> 'g'
d.peek(-1) //=> 'i'

d.extend('jkl')
d //=> Deque(['g', 'h', 'i', 'j', 'k', 'l'])

d.rotate(1)
d //=> Deque(['l', 'g', 'h', 'i', 'j', 'k'])

d.rotate(-1)
d //=> Deque(['g', 'h', 'i', 'j', 'k', 'l'])

const d2 = new Deque(d)

d2 //=> Deque(['g', 'h', 'i', 'j', 'k', 'l'])
```

## 类型脚本

这个项目使用 [类型脚本](https://github.com/Microsoft/TypeScript) 并公布国家预防机制的定义.

## 参考文献

循环数组执行原基于 [`denque`](https://github.com/Salakar/denque) 和额外的优化.

## 许可证

Apache 2.0 (英语)

## 常见问题

### @blakeembrey/deque 是什么？

Deques 是对堆栈和队列的概括

### 如何安装 @blakeembrey/deque？

在项目目录运行 npm install @blakeembrey/deque，或使用 pnpm add / yarn add / bun add。

### @blakeembrey/deque 支持 TypeScript 吗？

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

### @blakeembrey/deque 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @blakeembrey/deque 可以商用吗？

@blakeembrey/deque 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @blakeembrey/deque 的下载量有多少？

根据 npm 官方下载统计，@blakeembrey/deque 在 2026/10/09 – 2026/11/07 这 30 天内被下载 1,092,597 次，日均约 36,420 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @blakeembrey/deque 还在维护吗？

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

