当我尝试向数组位置添加字符串时为什么不起作用

时间:2020-06-01 05:16:22

标签: javascript arrays

我仍在学习JavaScript,现在我在数组一章中,正在做这个项目,我必须向用户询问5个名称并存储和数组,然后必须按位置对名称进行排序在数组中,因此我可以将奇数和偶数分开,然后我必须在赔率中添加一个姓氏,并在偶数中添加一个不同的姓氏,但这部分没有任何帮助...谢谢

var numberfirstNames = 5;
var userMessage = " Please enter a first Name" ;
var secondArray = [];
var odd2 = [];
var even2 = [];
for (var i = 0; i < numberfirstNames; i++) // loop 5 times  LOOL ASKING FOR "5" FIRST NAMES>> STORING IN NAMES   
{
    secondArray[i] = getFirstname();
    window.alert("second " + secondArray[i] );
}
for (var i = 0; i < secondArray.length; i++) {
    if(i % 2 === 0)  // index is even
    {
        even2.push(secondArray[i]);
        for ( var i=0 ; i<even2.length; i++)
            even2[i]+=" Chavez"
    }
    else
    {
        odd2.push(secondArray[i]);
        for ( var i=0 ; i<odd2.length; i++)
            odd2[i]+=" McCain"
    }
}

document.write(" \n all the names: "+ secondArray+'<br>');
document.write(" \n even names: "+ even2+'<br>');
document.write(" \n odd names: "+ odd2+'<br>');

2 个答案:

答案 0 :(得分:0)

问题是您正在进行第二个不必要的循环...代码

for ( var i=0 ; i<even2.length; i++)

for ( var i=0 ; i<odd2.length; i++)

应该简单地删除。

您只需在添加到odd2even2的最后一个元素中添加名字或姓氏即可,这可以通过以下方式完成:

 even2[even2.length-1]+=" Chavez"

 odd2[odd2.length-1]+=" McCain"

重要的是要习惯于添加正确的缩进,因为正确缩进后,这种错误在代码中更容易发现。

答案 1 :(得分:0)

您无需再次循环即可添加特定的姓氏。您可以在将其插入到数组中时,像下面这样预先添加它。

var numberfirstNames = 5;
var userMessage = " Please enter a first Name";
var secondArray = [];
var odd2 = [];
var even2 = [];

// loop 5 times LOOP ASKING FOR "5" FIRST NAMES >> STORING IN NAMES
for (var i = 0; i < numberfirstNames; i++) {
    secondArray[i] = getFirstname();
    window.alert("second " + secondArray[i]);

    if (i % 2 === 0) {
        even2.push(secondArray[i] + " Chavez");
    } else {
        odd2.push(secondArray[i] + " McCain");
    }

}

document.write(" \n all the names: " + secondArray.join(",") + '<br>');
document.write(" \n even names: " + even2.join(",") + '<br>');
document.write(" \n odd names: " + odd2.join(",") + '<br>');
相关问题