在Javascript中输入数字之间的破折号

在Javascript中输入数字之间的破折号,javascript,Javascript,我想在偶数之间插入一个破折号。但是,程序运行时不返回任何内容。当我将初始列表设置为包含一个数字时,它返回相同的数字,表示循环没有添加任何内容 function dashEvenNumbers(numbers) { var list = []; for (var i = 0; i < numbers.length; i++) { if (numbers[i] % 2 == 0 && numbers[i + 1] == 0) { list.push(

我想在偶数之间插入一个破折号。但是,程序运行时不返回任何内容。当我将初始列表设置为包含一个数字时,它返回相同的数字,表示循环没有添加任何内容

function dashEvenNumbers(numbers) {
  var list = [];
  for (var i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 == 0 && numbers[i + 1] == 0) {
      list.push(i, '-');
    } else {
      list.push(i);
    };
  };
  alert(list);
  return list.join('');
};

alert(dashEvenNumbers(123125422));
函数编号(编号){
var列表=[];
对于(变量i=0;i
您可以使用带有前瞻性的正则表达式


console.log('123125422'。替换(/([02468](?=[02468]))/g,'$1-')您可以使用具有前瞻性的正则表达式


console.log('123125422'。替换(/([02468](?=[02468]))/g,'$1-')数字没有
length
属性,因此
Numbers.length
将是
未定义的

您可能希望首先转换为字符串,例如:

numbers = String(numbers);

数字没有
length
属性,因此
Numbers.length
将是
未定义的

您可能希望首先转换为字符串,例如:

numbers = String(numbers);

if(numbers[i]%2==0&&numbers[i+1]==0){的行缺少
if()
语句中的第二个余数检查,您可以使用
numbers[i+1]==0
避免输入
if()
因为在作为参数传递的数字中没有零,所以函数中的变量数字是数组。但是u传递一个number@Jamb000h您可以编辑您的问题。如果(数字[i]%2==0和数字[i+1]==0){的行缺少您的
if()
语句
numbers[i+1]中的第二个余数检查==0
避免在
if()中输入
因为在作为参数传递的数字中没有零,所以函数中的变量数字是数组。但是u传递一个number@Jamb000h您可以编辑您的问题。谢谢,在将数字转换为字符串的同时,我还修复了停止代码的其他错误。出于某种原因,我认为javascript将所有输入转换为字符串。Thanks,在将数字转换为字符串的同时,我还修复了停止代码的其他错误。