Javascript 使用semver强制执行数组,对其排序,然后将其还原为强制执行前的对应数组
问题在于其不同的功能返回不同的输出:Javascript 使用semver强制执行数组,对其排序,然后将其还原为强制执行前的对应数组,javascript,node.js,npm,Javascript,Node.js,Npm,问题在于其不同的功能返回不同的输出: const semver=require(“semver”) 有效版本(“1.0.0”) //=> "1.0.0" 有效版本(“1.0.0”) //=>空 有效版本(“v1.0.0”) //=>空 semver.clean(“1.0.0”) //=> "1.0.0" semver.clean(“1.0.0”) //=> "1.0.0" semver.clean(“v1.0.0”) //=>空 semver.valid(semver.胁迫(“1.0.0”))
const semver=require(“semver”)
有效版本(“1.0.0”)
//=> "1.0.0"
有效版本(“1.0.0”)
//=>空
有效版本(“v1.0.0”)
//=>空
semver.clean(“1.0.0”)
//=> "1.0.0"
semver.clean(“1.0.0”)
//=> "1.0.0"
semver.clean(“v1.0.0”)
//=>空
semver.valid(semver.胁迫(“1.0.0”))
//=> "1.0.0"
semver.valid(semver.胁迫(“1.0.0”))
//=> "1.0.0"
semver.valid(semver.胁迫(“v1.0.0”))
//=> "1.0.0"
我有一系列的版本需要:
“1.0.0”=>“1.0.0”
semver.rcompare进行排序
convert([“1.0.0”、“3.0.0aa”、“v2.0.0”、“v0”],false)
//=>[“3.0.0aa”、“v2.0.0”、“1.0.0”、“v0”]
转换([“1.0.0”、“3.0.0aa”、“v2.0.0”、“v0”],真)
//=> ["3.0.0", "2.0.0", "1.0.0", "0.0.0"]
我认为这将是Map
的一个很好的用例-因为它可以保存2对值,所以它可以在整个转换过程中存储版本的标识。然而,我不知道如何实现这一点
关于GitHub问题还有一些额外的讨论。这里的最佳策略是使用类似于地图的数组结构:
const semver=require('semver'))
const cleanSemver=require('clean-semver'))
module.exports=(版本,clean=true)=>{
const sortedVersions=版本
.map(版本=>version.trim())
.map(版本=>[版本,清理器(版本)])
.filter(版本=>版本[1])
.sort((a,b)=>semver.rcompare(a[1],b[1]))
如果(清洁){
返回sortedVersions.map(版本=>版本[1])
}
返回sortedVersions.map(([version])=>version)
};
@jwdonahue这是javascript。