【问题标题】:How can I insert dashes between each 2 odds numbers and even numbers in Javascript?如何在Javascript中的每2个奇数和偶数之间插入破折号?
【发布时间】:2022-09-24 18:14:27
【问题描述】:

如何在每两个奇数之间插入破折号(\'-\')并在每两个偶数之间插入星号(\'*\')?

例如:如果 num 为 4005467930,则输出应为字符串格式:40054*67-9-30。我没有把零算作奇数或偶数。 下面是我的代码:我尝试使用 continue 循环过零,但它不起作用

function StringChallenge(num) {

    let newString = num.toString();
    let result = \'\';
   
    for (let i = 0; i <newString.length; i++) {
      let previous_number = newString[i-1];
      let current_number = newString[i];

      if(current_number === 0 || previous_number === 0 ){
        result += current_number
        continue
      } else
        if(previous_number % 2 == 0 && current_number % 2 == 0) {
            result += \"*\" + current_number
            console.log(result)
        } else if(previous_number % 2 !== 0 && current_number % 2 !== 0) {
            result += \"-\" + current_number
            console.log(result)
        } else {
            result += current_number
            console.log(result)
        }
        
        
    }
    return result
}
console.log(StringChallenge(4005467930))   // -4*0*054*67-9-30; I want it to be: 40054*67-9-30 //

    标签: javascript arrays string algorithm for-loop


    【解决方案1】:

    我们可以在这里尝试一个简单的正则表达式方法:

    var number = "4005467930";
    var output = number.replace(/(?<=[2468])(?=[2468])/g, "*")
                       .replace(/(?<=[13579])(?=[13579])/g, "-");
    console.log(number + " => " + output);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多