使用Javascript提取Json对象的一部分

时间:2015-09-16 09:09:37

标签: javascript json

假设我有这个对象:

{
"cars":[
    {"modell":"Volvo", "color":"blue", "origin":"Sweden"}, 
    {"modell":"SAAB", "color":"black", "origin":"Sweden"},
    {"modell":"Fiat", "color":"brown", "origin":"Italy"},
    {"modell":"BMW", "color":"silver", "origin":"Germany"}, 
    {"modell":"BMW", "color":"black", "origin":"Germany"},
    {"modell":"Volvo", "color":"silver", "origin":"Sweden"}
    ]
}

首先,我将对象保存到 myCars

1:我想使用javascript来提取原产瑞典的汽车,然后将这些汽车放在一个名为 mySwedishCars 的新对象中。

2:如果这更简单,我想从对象 myCars 中提取所有非瑞典汽车。

最后,我必须有一个只包含瑞典汽车的物体。

欢迎任何建议!

2 个答案:

答案 0 :(得分:1)

在汽车数组上使用filter仅返回瑞典汽车:

function getSwedish(arr) {
  return arr.filter(function (el) {
    return el.origin === 'Sweden';
  });
}

var mySwedishCars = getSwedish(myCars.cars);

DEMO

BUT!更好的是,你可以推广这个功能,以返回你喜欢的汽车的国籍:

function getCarsByCountry(arr, country) {
  return arr.filter(function (el) {
    return el.origin === country;
  });
}

var mySwedishCars = getCarsByCountry(myCars.cars, 'Sweden');
var myGermanCars = getCarsByCountry(myCars.cars, 'Germany');

DEMO

答案 1 :(得分:1)

您可以在javascript中过滤数组:

var swedishCars = myCars.cars.filter(function(c) {
    return (c.origin === "Sweden");
});