只需遍历一个数组

时间:2012-07-18 19:59:33

标签: javascript arrays

为什么name_Scenario [i]迭代每个单独的char而不是数组中的每个字符串?

var num_Scenarios;
var num_Features;
var name_Scenario = ["Login", "Users", "Yo", "Whatsup", "Diablo 3", "Junglr", "Microsoft", "Another", "Hi", "Anyone", "O", "Happy", "Stuff", "Sleep", "Account"];
var desc_Scenario;

function normalGrid() {
    $("#tile-bank").remove();
    $("#content").append("<div id=\"tile-bank\"></div>");
    //Code where your data is received and you run addScenario() per interation
    //filler global vars that your data will replace
    num_Scenarios = 15;
    num_Features = 20;
    name_Scenario = "Login";
    desc_Scenario = "This is a description.";
    var add_to = $("#tile-bank");
    for (var i = 0; i < num_Scenarios; i++) {
        addScenario(add_to, num_Features, name_Scenario[i], desc_Scenario);
    }

3 个答案:

答案 0 :(得分:3)

name_Scenario = "Login";行之后,name_Scenario是一个字符串,换句话说,是char的数组,您正在迭代char。只需删除该行。

for (var i = 0; i < name_Scenario.length; i++) {
//changed 'num' to 'name'--^       ^---added '.length' here
    addScenario(add_to, num_Features, name_Scenario[i], desc_Scenario);
}

答案 1 :(得分:1)

您正在重新定义name_Scenario。它曾经是一个数组,但是当你用[i]调用它上面的索引时,它就变成了一个字符串。

此外,您不需要num_Scenarios。你可以使用nameScenario.length(当然它仍然是一个数组!)。

答案 2 :(得分:1)

您正在覆盖var var name_Scenario;

在第3行你做= [“登录”,“用户”,“哟”,“Whatsup”,“暗黑破坏神3”,“Junglr”,“微软”,“另一个”,“嗨”,“任何人“,”O“,”快乐“,”东西“,”睡眠“,”帐户“];

然后在循环之前你做name_Scenario =“登录”;