包含数组但长度为的Javascript数组为0

时间:2017-12-02 21:11:50

标签: javascript

var food = ["fruit=apple", "fruit=banana", "drink=cola"];
var vars = [];
for(var i = 0; i < food.length; i++)
{
    var key = food[i].substring(0, food[i].indexOf("="));
    if (vars[key] == undefined){
        vars[key] = [];
    }
    vars[key].push(food[i].toLowerCase().split("=")[1]);
}
console.log(vars);
console.log(vars.length);

以上代码的输出将输出此信息。但问题是长度:0。我不明白这是怎么回事,因为你可以清楚地看到包含[fruit:Array(2),drink:Array(1)]的数组。但它仍然说长度:0;

The output of vars and vars.length

我想用for循环遍历vars数组,但我不能,因为我不能在for循环中使用vars.length。

或许还有另一种方法可以循环使用vars,欢迎提出建议。

1 个答案:

答案 0 :(得分:2)

您正在使用vars数组作为对象。数组没有文字键。使用您的方法,您可以使用以下方法计算您的值:

Object.values(vars).length