Javascript:反转循环输出

Javascript:反转循环输出,javascript,Javascript,基本上,我正在创建一个脚本来显示一组数字的位置值。这是我的剧本: var arrn = '3252'; var temp = 0; var q = arrn.length; var j = 0; for (var i = q-1; i >= 0; i--,j++) { if (j!=0) temp = temp + ' + '; { temp += arrn[i] * Math.pow(10, j); } } alert(temp); 我的目标是

基本上,我正在创建一个脚本来显示一组数字的位置值。这是我的剧本:

var arrn = '3252';
var temp = 0;
var q = arrn.length;
var j = 0;

for (var i = q-1; i >= 0; i--,j++) {
    if (j!=0) temp = temp + ' + ';
    {
        temp += arrn[i] * Math.pow(10, j);
    }
}
alert(temp);
我的目标是达到3000+200+50+2。但我得到2+50+200+3000。我尝试了temp.reverse()&排序函数,但似乎不起作用。请帮助更改

if(j!=0)temp=temp +' + ';
{
    temp +=arrn[i]*Math.pow(10,j);
}


旁注:上面第一个代码块中的大括号非常容易引起误解。你所拥有的:

if(j!=0)temp=temp +' + ';
{
    temp +=arrn[i]*Math.pow(10,j);
}

也就是说

if(j!=0) {
    temp=temp +' + ';
}
temp +=arrn[i]*Math.pow(10,j);
您版本中的块与
不关联,如果
,则它只是一个独立的块



旁注#2:由于您在其他地方都使用
temp
作为字符串,因此我将使用
'
而不是
0
初始化它。您的字符串没有以无关的
0
结尾的原因非常模糊。:-)

临时拆分(“+”).reverse().join(“+”)怎么样?

只需将数字添加到字符串的开头,而不是末尾:

for (var i = q - 1; i >= 0; i--, j++) {
  if (j != 0) {
    temp = ' + ' + temp;
  }
  temp = arrn[i] * Math.pow(10, j) + temp;
}
演示:

旁注:在
if
语句之后的代码中使用了一些令人困惑的括号。由于
if
语句后面有一条语句,下一行开始的括号就变成了一个代码块,但很容易认为它应该是
if
语句中的条件为真时执行的代码


另一个旁注:
script
标记的
language
属性在很多年前就被弃用了。如果要指定语言,请使用
type=“text/javascript”

您可以这样做。我知道这是可以优化的。但它是有效的

var arrn='3252';
var temp=0;

var q=arrn.length;
var res = [];
var j=0;
for(var i=q-1;i>=0;i--,j++)
{
    temp += parseFloat(arrn[i])*Math.pow(10,j);
    res.push(arrn[i]*Math.pow(10,j));
}
res.reverse();
alert(res.join('+') + " = " + temp);

var arrn='3252';
var temp=新数组();
var q=阵列长度;

对于(var i=0;i)您的代码相当混乱。在
if
后面有一个语句,然后用大括号括起来。我不会尝试修复您的代码,但您应该仔细看那一行。您的意思是
if(j!=0){temp=temp++;temp+=arrn[i]*Math.pow(10,j);}
?如果没有,为什么大括号在那里?@user2672112:点击刷新,我在发布后一秒钟左右意识到你在别处再次添加到
temp
:-)它给了我这个folkol,2502003000@user2672112:folkol当前的答案有效:(我不会这样做,我会故意按照正确的顺序构建字符串,但它确实有效,不会弄乱你的空间)。我不知道你是否在看早期的副本,他/她在忍者编辑中滑倒了。。。
for (var i = q - 1; i >= 0; i--, j++) {
  if (j != 0) {
    temp = ' + ' + temp;
  }
  temp = arrn[i] * Math.pow(10, j) + temp;
}
var arrn='3252';
var temp=0;

var q=arrn.length;
var res = [];
var j=0;
for(var i=q-1;i>=0;i--,j++)
{
    temp += parseFloat(arrn[i])*Math.pow(10,j);
    res.push(arrn[i]*Math.pow(10,j));
}
res.reverse();
alert(res.join('+') + " = " + temp);
var arrn='3252';
var temp=new Array();

var q=arrn.length;
for(var i=0;i<=q-1; i++){
    temp.push(arrn[i]*Math.pow(10,(q-i-1)));
}
temp = temp.join('+');
alert(temp);