Javascript 中的函数,在每两个奇数或偶数之间插入破折号或星号

珍妮

我想编写一个函数,在每两个奇数之间插入破折号 (' - ') 并在每两个偶数之间插入星号 (' * ')。例如:

Input: 99946
Output: 9-9-94*6

Input: 24877
Output: 2*4*87-7

我的尝试


function dashAst (para) {

    let stringArray = para.toString().split('');

    let numbArray = stringArray.map(Number);
      


    for (let i = 0; i<numbArray.length; i++) {

      if (numbArray[i] %2 === 0 && numbArray[i+1] % 2 === 0) {
        numbArray.splice(numbArray.indexOf(numbArray[i]), 0, '*')
      } 
      
      else if (numbArray[i] %2 !== 0 && numbArray[i+1] %2 !== 0) {
        numbArray.splice(numbArray.indexOf(numbArray[i]), 0, '-')
      }
    }
    
    return numbArray
}

当我尝试调用该函数时,它什么都不返回。例如,我单独测试了 splice-command,它似乎是正确的,这让我更加困惑。感谢大家阅读,甚至帮助初学者。

布莱克斯

循环遍历一个在循环期间改变其长度的数组可能会非常混乱(i每次都需要调整splice)。创建新的结果变量更容易:

function dashAst(para) {
  const stringArray = para.toString().split('');
  const numbArray = stringArray.map(Number);
  let result = "";

  for (let i = 0; i < numbArray.length; i++) {
    const n = numbArray[i], next = numbArray[i + 1];
    result += n;
    if (n % 2 == next % 2) {
      result += n % 2 ? '-' : '*';
    }
  }

  return result;
}

console.log(dashAst(99946)); // "9-9-94*6"
console.log(dashAst(24877)); // "2*4*87-7"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在特定数字的每两个偶数数字之间插入破折号

在两个词之间插入破折号

Javascript破折号

在字符串中的两个元音之间插入破折号

如何在数字和文本Javascript之间插入破折号

删除间距并通过javascript在单词之间添加破折号

javascript中两个函数之间的范围问题

JavaScript中两个Promise函数之间的区别

两个函数 JavaScript 之间的 SetInterval

忽略javascript搜索代码中的空格和破折号

使用两个循环构建具有奇数和偶数字符的JavaScript网格

在rst文件中显示两个破折号

在javascript中结合两个函数

在 JavaScript 中仅使用正则表达式选择第一个破折号

Javascript正则表达式:以逗号分隔的字符串在两个星号之间捕获多个星号

在两个Javascript / Jquery函数之间传递var?

如何在两个 javascript 函数之间实现承诺?

列表中两个数字之间的JavaScript函数?

删除前两个破折号 MySQL 之间的任何内容

是否有删除两个单词之间的破折号(“-”)然后收缩它们的算法?

JavaScript将破折号前后的空格替换为破折号

在javascript字符串中的破折号后获取所有内容

在javascript中为多级类别的每个子项添加破折号

Javascript Regex删除数字中破折号周围的空格而不是字符串

在JavaScript中如何处理带有破折号的ID?(自动创建全局变量)

在javascript中获取两个日期之间的周数的问题

如何获取JavaScript中两个日期之间的天数?

JavaScript中两个日期之间的月份差异

如何获取JavaScript中两个日期之间的区别?