{
"rResponse":{
"rDetailsList":[
{
"rDate":"April 01, 2018",
"rList":[
{
"aName":"GOKQG C HQFUDHFPX",
"aNumber":"P3799838628"
},
{
"aName":"IGNDPJR D EKYJYC",
"aNumber":"P3899820579"
}
]
},
{
"rDate":"Jan 01, 2018",
"rList":[
{
"aName":"",
"aNumber":"A39A4035073"
},
{
"aName":"YVTLW K SIGLC",
"aNumber":"A270M040558"
}
]
}
]
}
} Iは、検索文字列に基づいてデータをフィルタリングするための上記の関数を使用していジャバスクリプト
getFilteredResult(rDetails, searchText) {
const regex = new RegExp(searchText, 'i');
let result= rDetails.filter(a =>
a.rList.some(rItem=>
(rItem.aName.search(regex) > -1) ||
(rItem.aNumber.search(regex) > -1)
))
console.log(result,"filteredResults")
return result;
}
let result=getFilteredResult(rResponse.rDetailsList, "A270M040558"):
に検索文字列を使用してオブジェクトのネストされた配列をフィルタリングします。
オブジェクトの構造を保持するオブジェクトのネストされた配列をフィルタリングしたい 上記の関数の出力は次のとおりです。ここでは、検索テキストに一致するオブジェクトを1つだけ取得するのではなく、リストのすべてのオブジェクトを取得しています
{
"rResponse": {
"rDetailsList": [{
"rDate": "Jan 01, 2018",
"rList": [{
"aName": "",
"aNumber": "A39A4035073"
},
{
"aName": "YVTLW K SIGLC",
"aNumber": "A270M040558"
}
]
}]
}
}
期待される出力が
{
"rResponse": {
"rDetailsList": [{
"rDate": "Jan 01, 2018",
"rList": [
{
"aName": "YVTLW K SIGLC",
"aNumber": "A270M040558"
}
]
}]
}
}であります
はあなたを与えるloadsh.jsする方法を見つけるに使用することができてもよいです所望の結果。詳細はhttps://lodash.com/docs/4.17.4#find –