嘿,伙计们正在处理CoderBytes的问题。以下说明:
使用JavaScript语言,让函数DashInsert(num)在num中的每两个奇数之间插入破折号(' - ')。例如:如果num为454793,则输出应为4547-9-3。不要把零数作为奇数。
使用下面的框中的参数测试功能,使用不同的参数测试代码。
所以我没有创建一个功能,但这是我的路线图。
num = 3333333333
arr = num.toString().split("")
for(var i = 0; i < arr.length; i++){
if(arr[i] % 2 === 1 && arr[i + 1] % 2 === 1){
num.toString().replace(arr[i].toString() + arr[i+1].toString(),
arr[i].toString() + "-" + arr[i+1].toString())
}
}
事情是,当我运行它时,它只在前两个三分之间放一个冲刺。我真的无法弄清楚为什么会这样。谁知道我哪里出错了?
答案 0 :(得分:3)
在这里,这个简单的解决方案应该做得很好:
var num = 3434333333
var arr = num.toString().split("");
var finalStr = "";
for(var i = 0; i < arr.length; i++){
if(arr[i] % 2 === 1 && arr[i + 1] % 2 === 1){
finalStr += arr[i] + "-";
}
else {
finalStr += arr[i];
}
}
只需为结果保留一个字符串,如果两个连续数字为奇数,则在字符串中的数字后附加一个“ - ”,否则只需附加数字,最后一个字符串将包含所需的结果。
<强> See the DEMO here 强>