怎样在小程序里实现标题的更改
915
2022-10-29
一个小巧(110B)且快速的实用工具类,用于排序ISO 8601日期字符串
ARCHIVEDUnless you're working with very old browsers or Node.js runtimes, you do not need this library!A regular arr.sort() will work identically, and is now much faster.If sorting by recency (latest first), please beware of the gotchas.
A tiny (110B) and fast utility to sort ISO 8601 Date strings
Converting strings to Date instances is expensive.Unless you truly need a Date instance (or have one anyway), you're better off relying on string comparison logic.Gone are wasteful days of parsing Dates just to determine a sort order.
While ISO 8601 stirngs are preferred (see Date.prototype.toISOString()), all you really need is a YYYY-MM-DD prefix for safe LTR character comparisons.
Note: Formats like MM/DD/YYYY and DD-MM-YYYY will yield incorrect results.
This module is delivered as:
CommonJS: dist/index.jsES Module: dist/index.mjsUMD: dist/index.min.js
Install
$ npm install --save sort-isostring
Usage
import sorter from 'sort-isostring';const articles = [ { updated: '2019-12-01' }, { updated: '2020-03-07T05:51:07.746Z' }, { updated: '2018-01-07T05:50:41.107Z' }, { updated: '2020-02-21' },];// Sort: Oldest firstarticles.sort((x, y) => sorter(x.updated, y.updated));console.log(articles.map(x => x.updated));//=> [ '2018-01-07T05:50:41.107Z', '2019-12-01',//=> '2020-02-21', '2020-03-07T05:51:07.746Z' ]// Sort: Newest first (aka, recency)articles.sort((x, y) => sorter(y.updated, x.updated));console.log(articles.map(x => x.updated));//=> [ '2020-03-07T05:51:07.746Z', '2020-02-21',//=> '2019-12-01', '2018-01-07T05:50:41.107Z' ]
API
sort(foo, bar)
Returns: Number
As with any comparison function, when comparing foo and bar:
A 0 is returned if the values are equalA -1 is returned if foo is less than barA 1 is returned if foo is greater than bar
foo
Type: String
A Date string in ISO 8601 (or similar) format.See Date.prototype.toISOString().
Important: The string format must be identical to bar's format.
bar
Type: String
A Date string in ISO 8601 (or similar) format.See Date.prototype.toISOString().
Important: The string format must be identical to foo's format.
Benchmarks
Running on Node.js v10.13.0
Date[] -> Number x 322,876 ops/sec ±0.30% (96 runs sampled)string[].map(Date) -> Number x 194,208 ops/sec ±0.77% (95 runs sampled)string[] -> sort-isostring x 1,443,499 ops/sec ±1.22% (94 runs sampled)
Related
tinydate - An extremely quick, tiny (349B), and reusable date formatter.
License
MIT © Luke Edwards
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~