将项目推送到数组然后反向数组javascript

时间:2013-09-11 10:28:09

标签: javascript arrays methods reverse

我创建了一个我现在要反转的数组。数组应显示从指定的数字到0的每个数字。

我尝试过以各种方式使用reverse()方法,但要么错过了数组中的其他所有数字,要么根本不返回任何数字?

在下面的代码中,else if语句是数组想要反转的地方。

有没有办法在这里使用数组上的reverse()方法或另一种方法来执行此操作?

谢谢

function myFunc() {

  var x = Math.floor(Math.random() * 100);
  var counter = [];
  var start = 0;
    if (x > 40) { 
      start = 40;
      } else { 
      start = 0; }

  for (var i = start; i < x; i++) {
    if (x > 40 && i % 2 == 1) {
        counter.push(i);
    } else if (x < 40) {
        counter.push(i).reverse(); //reverse here returns nothing
        counter.reverse();         //reverse here returns every other number only 
    }
  }

   return counter + ',' + x;

}

 console.log(myFunc())

3 个答案:

答案 0 :(得分:0)

......
for (var i = start; i < x; i++) {
    if ((x > 40 && i % 2 == 1) || x < 40) {
        counter.push(i);
    }
}

if(x<40)
    counter.reverse(); 

return counter; 
}

应该这样工作......(除非我误解了你的问题?)

答案 1 :(得分:0)

  

我创建了一个我现在要反转的数组。数组应显示从指定的数字到0的每个数字。

如果这是问题,那么你可以更容易地解决这个问题:

var x = Math.floor(Math.random() * 100);
var counter = [];
var end = (x > 40 ? 40 : 0);
while (end <= x) {
    counter.push(x);
    --x;
}
return counter;

<强>演示

Try before buy

您的代码会执行其他操作,但您可以将其调整为:

while (end <= x) {
    if ( ((40 < x) && (1 == x % 2)) || (40 > x)) {
        counter.push(x);
    }
    --x;
}

答案 2 :(得分:0)

http://jsfiddle.net/aLUfh/2/

var x = Math.floor(Math.random() * 100);
var counter = [];

for (i = 0; i < x; i++) {
    counter.push(i);
}

counter.reverse();
$('#Xis').html(x);
$('#outcome').html(counter + ',' + x);