首页 > 解决方案 > 如何使用javascript获取Json对象中字符串的实例数

问题描述

我在 Json 对象下方,其中包含与其制造商关联的汽车。从 Json 对象中,我想获取汽车的总数以及对象中特定汽车的出现。

var Cars = { "manufacturer":"Car":
               [{"Saab":"Automobile AB"},
                {"Volvo":"V40"},
                {"BMW":"Estoril Blue"},
                {"Volvo":"V40"},
              ]};

我尝试使用filter但由于过滤器仅特定于Arrays因此不能与 Json 对象一起使用。下面是源代码。

var Cars = {"manufacturer":"Car":
               [{"Saab":"Automobile AB"},
                {"Volvo":"V40"},
                {"BMW":"Estoril Blue"},
                {"Volvo":"V40"},
               ]};

var volvo = "V40";

var numberOfCars = Cars.filter(function (x) {
       return x === volvo;
    }).length;

我希望上述源代码的输出为 2。但我得到一个异常

Cars.filter 不是函数

我需要你们帮我了解V40(即2)的发生率,以及汽车的总数(即4)。

标签: javascriptarraysjsonobject

解决方案


遍历对象的属性很容易。一种方法是使用 Object.entries 获取属性和值的数组;

var Cars = [{"Saab":"Automobile AB"}, {"Volvo":"V40"}, {"BMW":"Estorill Blue"}, {"Volvo":"V40"}];

let properties = Object.entries(Cars);
console.log("Number of cars: ", Cars.length);
console.log("Number of Volvos: ", Cars.filter((car) => Object.keys(car)[0] === "Volvo").length);


推荐阅读