亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用多種版本格式時的案例

使用多種版本格式時的案例

SMILET 2021-12-23 15:46:34
當我得到版本示例“1.0.0.0”格式的數字時。如果我需要增加到數字的下一個版本,這將導致“1.0.0.1”使用下面的正則表達式代碼將得到完美的結果為“1.0.0.1”——版本增量let version = "1.0.0.0";let nextVersion = version.replace(/.$/, parseInt(version[version.length - 1], 10) + 1);console.log(nextVersion)但是,如果我得到的數字不是版本格式的“1”,但我希望與上述相同的結果是“1.0.0.1”。在這種情況下我將如何處理數字?如果一個數字是“22”,我希望它是“22.0.0.1”
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您可以拆分并填充版本數組,然后將一個添加到最后一項。


function next(version) {

    var items = version.split('.').map(Number);

        

    while (items.length < 4) items.push(0);

    items[3]++;

    

    return items.join('.');

}


console.log(next("1.0.0.0"));

console.log(next("1"));

console.log(next("22"));


查看完整回答
反對 回復 2021-12-23
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

我制作了一個版本,您可以在其中傳遞要增加的位置。


如果該位置不存在,則創建它,如果沒有傳遞該位置,則為 3


const nextVersion = (ver, pos=3) => {

  let [main,...rest] = ver.split(".")

  rest = Array.isArray(rest) && rest.length > 0 ? rest : Array(pos).fill(0,0,pos);

  if (rest.length<pos) rest.push(0); // make sure it is long enough

  +rest[pos-1]++; // interestingly enough the + was not needed here

  return `${main}.${rest.join(".")}`; // or use rest.unshift(main)

}


console.log(nextVersion("22",3))

console.log(nextVersion("1.0.0.1",3))

console.log(nextVersion("22",1))

console.log(nextVersion("22.1",1))

console.log(nextVersion("22.1",2))

console.log(nextVersion("1.0.0.1",1))

console.log(nextVersion("22")); // no parameters


查看完整回答
反對 回復 2021-12-23
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號