前端面试题解析之比较版本号
Code
ts
/**
* 语言版本版本: x.y.z[-p]
* 12.3.1
* 5.7.8
* 1.5.6-alpha.1
* 7.2.3-beta
*/
解析
ts
function* walk(str) {
let part = '';
let terminals = ['.', '-', '+'];
for (let i = 0; i < str.length; i ++) {
if (terminals.includes(str[i])) {
yield part;
part = ''
} else {
part += str[i];
}
}
if (part) {
yield part;
}
}
const iterator = walk('1.5.6-alpha.1');
console.log('iterator', iterator.next())