js-sdsl logo

一个参考 C++ STL 实现的 JavaScript 标准数据结构库

NPM Version Build Status Coverage Status GITHUB Star NPM Downloads Gzip Size Rate this package MIT-license GITHUB-language

English | 简体中文

## 包含的数据结构 - Vector - Stack - Queue - LinkList - Deque - PriorityQueue - OrderedSet (using RBTree) - OrderedMap (using RBTree) - HashSet - HashMap ## Benchmark 我们和其他数据结构库进行了基准测试,在某些场景我们甚至超过了当前最流行的库 查看 [benchmark](https://js-sdsl.github.io/#/zh-cn/test/benchmark-analyze) 以获取更多信息 ## 支持的平台 - node.js (using commonjs) - react/vue (using es5) - browser (support most browsers) ## 下载 使用 cdn 直接引入 - [js-sdsl.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.js) (for development) - [js-sdsl.min.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.min.js) (for production) 使用 npm 下载 ```bash npm install js-sdsl ``` ## 使用说明 您可以[访问我们的主页](https://js-sdsl.github.io/)获取更多信息 并且我们提供了完整的 [API 文档](https://js-sdsl.github.io/js-sdsl/index.html)供您参考 ### 在浏览器中使用 ```html ``` ### npm 引入 ```javascript // esModule import { OrderedMap } from 'js-sdsl'; // commonJs const { OrderedMap } = require('js-sdsl'); const myOrderedMap = new OrderedMap(); myOrderedMap.setElement(1, 2); console.log(myOrderedMap.getElementByKey(1)); // 2 ``` ## 从源码构建 您可以克隆此仓库后运行 `yarn build` 命令重新构建这个库 ## 测试 ### 单元测试 我们使用 `jest` 库来编写我们的单元测试,并将结果同步到了 [coveralls](https://coveralls.io/github/js-sdsl/js-sdsl) 上,你可以使用 `yarn test:unit` 命令来重建它 ### 对于性能的校验 我们对于编写的所有 API 进行了性能测试,并将结果同步到了 [`gh-pages/performance.md`](https://github.com/js-sdsl/js-sdsl/blob/gh-pages/performance.md) 中,你可以通过 `yarn test:performance` 命令来重现它 您也可以访问[我们的网站](https://js-sdsl.github.io/#/zh-cn/test/performance-test)来获取结果 ## 维护者 [@ZLY201](https://github.com/ZLY201) ## 贡献 我们欢迎所有的开发人员提交 issue 或 pull request,阅读[贡献者指南](https://github.com/js-sdsl/js-sdsl/blob/main/.github/CONTRIBUTING.md)可能会有所帮助 ### 贡献者 感谢对本项目做出贡献的开发者们:

Takatoshi Kondo

💻 ⚠️
本项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。 欢迎任何形式的贡献! ## 许可证 [MIT](https://github.com/js-sdsl/js-sdsl/blob/main/LICENSE) © ZLY201