如何在JavaScript中将数字转换为字符串并将其推送到数组中?

如何在JavaScript中将数字转换为字符串并将其推送到数组中?,javascript,Javascript,我在用数组方法解决一个练习;其中,我需要输入一个数字,返回的值应该是同一个数字,在两个连续的偶数之间有破折号 到目前为止,我已经编写了这段代码,但它返回的是一个空数组,如果您能指出我的错误,那将比给出另一种解决方案要好得多 function dashit(num){ //test num = 025468, expected arr = ["0","-","2","5","4","-","6","- ","8"] var arr = []; var prog = num

我在用数组方法解决一个练习;其中,我需要输入一个数字,返回的值应该是同一个数字,在两个连续的偶数之间有破折号

到目前为止,我已经编写了这段代码,但它返回的是一个空数组,如果您能指出我的错误,那将比给出另一种解决方案要好得多

function dashit(num){ 
   //test num = 025468, expected arr = ["0","-","2","5","4","-","6","-  ","8"]
    var arr = [];
    var prog = num.toString().split(""); // I suppose ["0","2","5","4","6","8"]
    for (var i = 0; i<num.length; i = i + 2){
        if (num[i] % 2 == 0 ){ // case of "0" and "2"
            if (num[i+1] % 2 == 0){
                arr.push(prog[i]); // "0" pushed from prog to arr
                arr.push("-");     // "-" pushed from prog to arr
                arr.push(prog[i+1]); // "2" pushed from prog to arr
            }
        }
        else { // case of "5" and "4"
                arr.push(prog[i]);  // "5" pushed from prog to arr
                arr.push(prog[i+1]); // "4" pushed from prog to arr
        }
    }
    return arr;
} 
函数dashit(num){
//测试编号=025468,预期arr=[“0”、“5”、“4”、“1”、“6”、“8”]
var-arr=[];
var prog=num.toString().split(“”;//我假设[“0”、“2”、“5”、“4”、“6”、“8”]

对于(var i=0;i您正在传递
num
作为
octall
数字(以0开头)

尝试将其作为
字符串传递

dashit("025468");

见工作示例:
函数dashit(num){
var-arr=[];

对于(var i=0;i您正在比较
num
var,您必须比较
prog
var:

    function dashit(num){ 
    var prog = num.toString().split(""); // I suppose ["0","2","5","4","6","8"]
    for (var i = 0; i<prog.length; i = i + 2){
        if (prog[i] % 2 == 0 ){ // case of "0" and "2"
            if (prog[i+1] % 2 == 0){
}
函数dashit(num){
var prog=num.toString().split(“”;//我假设[“0”、“2”、“5”、“4”、“6”、“8”]

对于(var i=0;i这个问题非常适合使用递归。我确信这正是您的老师想要的;-)

var n='02546878642';
var isPair=功能(n1,n2){
返回编号(n1)%2==0和编号(n2)%2==0;
};
变量结果=(函数f(i,o){
如果(i.长度<1)返回o;
var first=i.shift();
var next=i[0];
o、 推(第一);
如果(isPair(第一个,下一个)){
o、 推动('-');
}
返回f(i,o);
})(n.split(“”),[]);
$('#result').html(result.join('');


结果
我假设
num
是一个实际数字(如注释中所示),并且
num[I]
没有意义,但是调试器会告诉您需要知道的一切
num.length
undefined
。您的意思是
prog.length
?与所有其他
num
用法相同。为什么在相同的情况下使用
num
,而在其他情况下使用
prog
呢?如果您知道num只包含数字,您可以您可以使用parseInt(num)来获取整数。如果它可能包含一些垃圾字符,则使用
/(\d+)/
正则表达式可能更合适。是否有任何原因让您使用自己的解决方案?您使用的是类似于C字符串的javascript字符串-它们不是。要提取特定字符,请使用substring()方法,但是在您的代码程序中是一个字符数组,您使用的num仍然是一个整数。那么您应该尽快!否则,您将如何验证或修复您的代码?非常感谢您的输入,它确实有效,但由于某些原因,在4到之间只缺少1个破折号6@MohamedHegazy您忘记了添加
arr.push(“-”);
else
语句中,我已经更新了代码,请参见始终愿意帮助:D