如何将数组中的每个其他元素加倍?

时间:2015-08-25 05:44:45

标签: javascript arrays

我需要在程序结束时输出两个数组。

第一个数组是用户输入的内容。第二个数组应复制第一个元素的元素,并用其double替换每个其他元素。假设用户将“1,2,3,4,5”保存到第一个阵列。第二个数组应该有:“1, 4 ,3, 8 ,5”。

这是我到目前为止所拥有的。

头标签

function toDouble(modArray)
{
   var modified = new Array();
   for(var i = 1; i < modArray.length; i+=2)
   {
      modified.push(modArray[i] * 2); 
   }
return modified;
}

身体标签

var origArray = new Array();
var modArray = new Array();
while() //ignore the while loop part; it is working fine
{ 
   origArray = parseInt(prompt("Enter a number: ")); 
   document.write(origArray); //output 1
   modArray.push(origArray);
}
var modified = toDouble(modArray); 
document.write(modified); //output 2

我只收到加倍的数字,而不是整个数组。例如,如果我输入“1,2,3,4,5”,我只得到“4,8”作为输出。

我该如何解决这个问题?提前谢谢!

2 个答案:

答案 0 :(得分:0)

function toDouble(modArray)
{
    var modified = new Array();
    for(var i = 1; i < modArray.length; i+=2)
    {
        modified.push(modArray[i-1]);
        modified.push(modArray[i] * 2); 
    }

    if(modified.length < modArray.length)
        modified.push(modArray[modArray.length - 1]);
    return modified;
}

答案 1 :(得分:0)

function toDouble(modArray) {
    var modified = new Array();
    for (var i = 0; i < modArray.length; i++) {
        if (i % 2 == 0)
            modified.push(modArray[i]);
        else
            modified.push(modArray[i] * 2);
    }
    return modified;
}

示例:

var a = [1, 2, 3, 4, 5]

toDouble(a); // output: [1, 4, 3, 8, 5]