@oopsunome/manual-sort

手动排序数组。

Usage no npm install needed!

<script type="module">
  import oopsunomeManualSort from 'https://cdn.skypack.dev/@oopsunome/manual-sort';
</script>

README

Codacy Badge Build Status Coverage Status dependencies Status

@oopsunome/manual-sort

手动排序数组,如:

[
  1,
  [1, 2, 3],
  'loaded',
  null,
]

将上面数组中 null 放置在 [1, 2, 3] 的位置,即:将第 4 位移动到第 2 位 (注意,并非对调位置),得到下面新的数组:

[
  1,
  null,
  [1, 2, 3],
  'loaded',
]

@oopsunome/manual-sort 支持在浏览器以及 Node.js 环境下使用。Node.js 方面,持续且仅支持最新 LTS 版本的。

目录

安装

# 使用 NPM
$ npm i @oopsunome/manual-sort lodash

# 使用 Yarn
$ yarn add @oopsunome/manual-sort lodash

# 使用 PNPM
$ pnpm install @oopsunome/manual-sort lodash

使用

manualSort(options)

  • options {Object}
    • data {Array} 待操作的数据
    • fromIndex {Number} 开始位置
    • toIndex {Number} 目标位置
  • 返回: {Promise} 被排序后的数据
import { manualSort } from 'manual-sort';

(async function() {
  try {
    const sorted = await manualSort({
      data: [ 1, [ 1, 2, 3 ], 'loaded', null ],
      fromIndex: 2,
      toIndex: 1,
    });

    console.table(sorted); // [ 1, 'loaded', [ 1, 2, 3 ], null ]
  } catch(err) {
    throw err;
  }
})();

manualSortSync(options)

  • options {Object}
    • data {Array} 待操作的数据
    • fromIndex {Number} 开始位置
    • toIndex {Number} 目标位置
  • 返回: {Array} 被排序后的数据
import { manualSortSync } from 'manual-sort';

const rslt = manualSortSync({
  data: [ 1, [ 1, 2, 3 ], 'loaded', null ],
  fromIndex: 2,
  toIndex: 1,
});

console.table(rslt); // [ 1, 'loaded', [ 1, 2, 3 ], null ]

参与开发

准备开发环境

详细参见 SETUP.md

安装依赖

@oopsunome/manual-sort 使用 Yarn 包管理器,执行 yarn install 安装依赖。

开始开发

yarn start

生产构建

yarn build

测试

yarn test

贡献指南

仔细查阅 CONTRIBUTING.md 以了解详情。

证书

@oopsunome/manual-sort 获得了 MIT 许可,仔细查阅 LICENSE.md 以了解详情。

待办

  • 支持 解构直接引用 2 种暴露接口的方式;
  • 提供同步、异步 2 种编程方式,异步编程采用 Promise
  • 支持构建 CommonJS, AMD, ESM, UMD 模式的模块;
  • 不将 lodash 等库打包;
  • 功能测试;
  • 捆绑 Git 倒钩
  • ESlint 检测;
  • 自动化生成所有依赖的开源证书;
  • 自动化发布;
  • 使用 David DM 实现 依赖是否最新 检测;
  • 使用 Travis CI 实现持续集成;
  • 使用 Coveralls 可视化测试用例覆盖率;
  • 使用 Codacy 实现代码质量检测;
  • 在什么场景下使用 @oopsunome/manual-sort?
  • 编写 开发环境指南
  • 文档:在哪里可以获得更多帮助?
  • 文档:设计思想;
  • 文档:维护策略;
  • 文档:编码风格指南
  • 编写 发布流程指南
  • 编写 Git 指南
  • 编写 命名指南
  • 编写 版本指南
  • 更新日志;
  • 谁在使用 @oopsunome/manual-sort?
  • 性能测试;