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;
我想用for循环遍历vars数组,但我不能,因为我不能在for循环中使用vars.length。
或许还有另一种方法可以循环使用vars,欢迎提出建议。
答案 0 :(得分:2)
您正在使用vars
数组作为对象。数组没有文字键。使用您的方法,您可以使用以下方法计算您的值:
Object.values(vars).length