包含数组但长度为0的Javascript数组 var food=[“水果=苹果”,“水果=香蕉”,“饮料=可乐”]; var-vars=[]; 对于(变量i=0;i

包含数组但长度为0的Javascript数组 var food=[“水果=苹果”,“水果=香蕉”,“饮料=可乐”]; var-vars=[]; 对于(变量i=0;i,javascript,Javascript,上述代码的输出将输出此值。但问题是长度:0。我甚至不明白这是怎么可能的,因为您可以清楚地看到数组包含[水果:数组(2),饮料:数组(1)]。但它仍然表示长度:0 我想用for循环遍历vars数组,但我不能,因为我不能在for循环中使用vars.length 或者,也许还有其他方法可以循环使用vars。欢迎您提供建议。您正在使用vars数组作为对象。数组没有文本键。使用您的方法,您可以使用以下方法计算您的价值: var food = ["fruit=apple", "fruit=banana",

上述代码的输出将输出此值。但问题是长度:0。我甚至不明白这是怎么可能的,因为您可以清楚地看到数组包含[水果:数组(2),饮料:数组(1)]。但它仍然表示长度:0

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


或者,也许还有其他方法可以循环使用vars。欢迎您提供建议。

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

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);

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

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);

长度应该是多少?2,因为钥匙的数量,3,因为物品的总数,或者别的什么?是的,它需要是2。我还需要关键字作为索引,所以如果说food[fruit]。length,我想看看food数组中的水果数组中有多少项。对,那么只需使用对象
{}
,并使用@hsz的解决方案来获得长度。长度应该是多少?2,因为钥匙的数量,3,因为物品的总数,或者别的什么?是的,它需要是2。我还需要关键字作为索引,所以如果说food[fruit].length,我想看看food数组中的水果数组中有多少项。对,所以只需使用一个对象
{}
,并使用@hsz的解决方案来获得长度。