【发布时间】:2019-08-23 06:40:05
【问题描述】:
这里有标准的 npm semver 版本比较库,但是我这里有一些简单的逻辑来比较 semver 版本:
const versionA = '14.8.3';
const versionB = '15.1.1';
const versionC = '15.1.2';
const semver = require('semver');
const assert = require('assert');
const isGreater = (a, b) => {
const [majorA, minorA, patchA] = String(a).split('.').map(v => Number.parseInt(v));
const [majorB, minorB, patchB] = String(b).split('.').map(v => Number.parseInt(v));
if (majorA > majorB) {
return true;
}
if (majorB > minorA) {
return false;
}
if (minorA > minorB) {
return true;
}
if (minorB > minorA) {
return false;
}
if (patchA > patchB) {
return true;
}
if (patchB > patchA) {
return false;
}
return false;
};
assert(isGreater(versionB, versionA), 'version b should be greater.');
assert(isGreater(versionA, versionB), 'version b should be greater.');
我的问题是 - 有没有办法简化大于函数中的逻辑?这个函数应该复制 semver.gt() 中的逻辑。
【问题讨论】:
标签: javascript node.js semantic-versioning