過濾我想所有的值,其中category.id = 1,所以我應該得到2個結果Underscore.js - 在嵌套的Json
我的JSON是這樣的:
var test = [
{
"id": 1,
"name": "name1",
"value": "value1",
"category": {
"id": 1,
"name": "category1"
}
},
{
"id": 2,
"name": "name2",
"value": "value2",
"category": {
"id": 1,
"name": "category1"
}
},
{
"id": 3,
"name": "name3",
"value": "value3",
"category": {
"id": 2,
"name": "category2"
}
}
];
我JavaScript的看起來是這樣的:
var x = _.filter(test,
function (innerObject) {
return _.filter(innerObject,
function (category) {
return category.id === 1;
});
});
console.log(x);
I made a JS Fiddle,但我得到每次都3元回來......不僅是2點正確的!
我也嘗試過類似
var x = _.where(test, {"category":{"id":2}});
console.log(x);
什麼似乎對我來說是合乎邏輯的,但數組始終是空
我希望有人能告訴我,我做了什麼錯。 ..
謝謝!
它的工作。 ..但我更喜歡pesta的編碼風格。 但完美將是兩個答案: 'var x = _.filter(test,function(a){return a.category.id === 1});'' – Joerg