@ bluelovers/ string-天然比较
自然排序比較函式,以人類直覺方式比較字母數字字串。。
自然类比较了与人类相比的字母字符串的函数.
功能說明/地物
- 自然比较: 自然排序比較函式 / 自然排序比较函数
- 创建新:\\ / 创建与预设选项的比较函数
- 不敏感: QQ / 无大小写比较函数
QQ / 安装
yarn add @bluelovers/string-natural-compare
yarn-tool add @bluelovers/string-natural-compare
yt add @bluelovers/string-natural-compare
使用範例 / 用法示例
基本使用 / 基本用途
import naturalCompare from '@bluelovers/string-natural-compare';
// 數字在字串中的排序
const files = ['img10', 'img2', 'img1', 'img20'];
const sorted = files.sort(naturalCompare);
console.log(sorted); // => ['img1', 'img2', 'img10', 'img20']
// 標準排序結果
console.log(files.sort()); // => ['img1', 'img10', 'img2', 'img20']
QQ/ 版本编号排序
import naturalCompare from '@bluelovers/string-natural-compare';
const versions = ['v1.0', 'v2.0', 'v1.1', 'v10.0', 'v1.10'];
const sorted = versions.sort(naturalCompare);
console.log(sorted); // => ['v1.0', 'v1.1', 'v1.10', 'v2.0', 'v10.0']
QQ / 创建自定义比较函数
import { createNew } from '@bluelovers/string-natural-compare';
// 降冪排列
const compareDesc = createNew({ desc: true });
console.log(['img1', 'img10', 'img2'].sort(compareDesc)); // => ['img2', 'img10', 'img1']
// 不區分大小寫
const compareCI = createNew({ caseInsensitive: true });
console.log(['Apple', 'banana', 'Cherry'].sort(compareCI)); // => ['Apple', 'banana', 'Cherry']
QQ / 数字比较
import naturalCompare from '@bluelovers/string-natural-compare';
console.log(naturalCompare(1, 2)); // => -1
console.log(naturalCompare(10, 2)); // => 1
console.log(naturalCompare(2, 2)); // => 0
// 混合比較
console.log(naturalCompare('a1', 'a2')); // => -1
console.log(naturalCompare('a10', 'a2')); // => 1
QQ/ 应用情景
- 檔案名稱排序(原始内容存档于2017-10-12). ing1, ing2, ing10
- 版本號排序: 构成 v1.0, v1.1, v2.0 qq
- 列表編號排序时间轴:
- 搜尋結果排序时间轴:
~ 字符串 - 自然比较2 ~ ~
此套件基於 字符串自然比较2 封裝, 19
- 类型脚本QQ
- (%)
desc降冪排列 - 更方便的工具函式