如何在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