含阵列但长度Javascript数组是0

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;含阵列但长度Javascript数组是0

我想通过增值经销商阵列一个循环回路,但我不能,因为我不能使用vars.length在我的for循环。

或者也许有其他的方式来循环变量anny建议是值得欢迎的。

回答:

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

Object.values(vars).length 

以上是 含阵列但长度Javascript数组是0 的全部内容, 来源链接: utcz.com/qa/258356.html

回到顶部