我有以下 JSON:
var json = [
{
"Key1": some text...,
"Key2": some text...,
"Key3": [
{
"Key": "Key 1",
"Value": "1",
},
{
"Key": "Key 2",
"Value": "1",
}
]
},
{
"Key1": some text...,
"Key2": some text...,
"Key3": [
{
"Key": "Key 1",
"Value": "2",
},
{
"Key": "Key 2",
"Value": "2",
}
]
},
{
"Key1": some text...,
"Key2": some text...,
"Key3": [
{
"Key": "Key 1",
"Value": "3",
},
{
"Key": "Key 2",
"Value": "3",
}
]
},
]
然后我有以下 var
var items = [1, 3];
我需要做的是過濾 json 以僅顯示存在 Key 2 值的專案到專案物件中。我正在嘗試執行以下操作:
var res = json.filter(item => items.includes(item.Key3.find(x => x.Key === "Key 2").Value));
上面的代碼回傳一個空結果 ([])。有另一種方法來處理這個嗎?我做錯了什么?
var json = [
{
"Key1":"some text...",
"Key2":"some text...",
"Key3":[
{
"Key":"Key 1",
"Value":"1"
},
{
"Key":"Key 2",
"Value":"1"
}
]
},
{
"Key1":"some text...",
"Key2":"some text...",
"Key3":[
{
"Key":"Key 1",
"Value":"2"
},
{
"Key":"Key 2",
"Value":"2"
}
]
},
{
"Key1":"some text...",
"Key2":"some text...",
"Key3":[
{
"Key":"Key 1",
"Value":"3"
},
{
"Key":"Key 2",
"Value":"3"
}
]
}
];
var items = [1, 3];
var res = json.filter(item => items.includes(item.Key3.find(x => x.Key === "Key 2").Value));
console.log(res);
uj5u.com熱心網友回復:
includes()執行嚴格的相等檢查。因此,如果items包含數字但item.Key3包含字串,則不匹配。
您應該將中的字串決議為Value整數。
var res = json.filter(item => items.includes(parseInt(item.Key3.find(x => x.Key === "Key 2").Value)));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/398999.html
標籤:javascript 查询 筛选 寻找
