Skip to content

前端面试题解析之比较版本号

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())