配列埋め込みオブジェクト配列をフィルタリングする方法は? 私はフィルターといくつかを使用していますが、結果は私のものではありません。
var data = [
{
"app": "mail",
"scenarios": [
{
"name": "",
"description": "plugin 1",
"contacts": [
{
"resourceId": "001",
"isPrimary": false
}
]
},
{
"name": "app2",
"description": "plugin 2",
"contacts": [
{
"resourceId": "002",
"isPrimary": false
}
]
}
]
},
{
"app": "mail2",
"scenarios": [
{
"name": "app1",
"description": "plugin 1",
"contacts": [
{
"resourceId": "001",
"isPrimary": false
}
]
},
{
"name": "app2",
"description": "plugin 2",
"contacts": [
{
"resourceId": "002",
"isPrimary": false
}
]
}
]
}
];
result = data.filter(app => app.scenarios.some(scenario => scenario.contacts.some(concact => concact.resourceId == '001')));
データをフィルタリングしたい
[
{
"app": "mail",
"scenarios": [
{
"name": "",
"description": "plugin 1",
"contacts": [
{
"resourceId": "001",
"isPrimary": false
}
]
}
]
},
{
"app": "mail2",
"scenarios": [
{
"name": "app1",
"description": "plugin 1",
"contacts": [
{
"resourceId": "001",
"isPrimary": false
}
]
}
]
}
]
var data = [{"app":"mail","scenarios":[{"name":"","description":"plugin 1","contacts":[{"resourceId":"001","isPrimary":false}]},{"name":"app2","description":"plugin 2","contacts":[{"resourceId":"002","isPrimary":false}]}]},{"app":"mail2","scenarios":[{"name":"app1","description":"plugin 1","contacts":[{"resourceId":"001","isPrimary":false}]},{"name":"app2","description":"plugin 2","contacts":[{"resourceId":"002","isPrimary":false}]}]}];
result = data.filter(app => app.scenarios.some(scenario => scenario.contacts.some(concact => concact.resourceId == '001')));
console.log(result);
回答 2 件
var data = [ { "app": "mail", "scenarios": [ { "name": "", "description": "plugin 1", "contacts": [ { "resourceId": "001", "isPrimary": false } ] }, { "name": "app2", "description": "plugin 2", "contacts": [ { "resourceId": "002", "isPrimary": false } ] } ] }, { "app": "mail2", "scenarios": [ { "name": "app1", "description": "plugin 1", "contacts": [ { "resourceId": "001", "isPrimary": false } ] }, { "name": "app2", "description": "plugin 2", "contacts": [ { "resourceId": "002", "isPrimary": false } ] } ] } ]; data.forEach(dat => { dat.scenarios = dat.scenarios.find(da => da.contacts.find(x=>x.resourceId === "001")); }); console.log(data)
あなたが探しているものに適合するかどうかを確認するためにコードを調べることができます。どの
contacts
配列には要素が1つしかありません。それ以外の場合は教えてください
関連記事
- 配列に基づくオブジェクト(Javascript)
- JavaScriptでオブジェクトを配列に変換するにはどうすればよいですか?
- JavaScriptでオブジェクトの配列を1つのオブジェクトに変換するにはどうすればよいですか?
- オブジェクトのフィルタリング中にnull以外の配列を確認します
- javascriptは、lodashによって同じキーを持つ配列オブジェクトの平均値を取得します
- ツリー型オブジェクト配列Javascriptからすべての子レコードを取得する
- ローカルストレージアイテムをjavascript配列に追加します
- JavascriptでJSONファイルからオブジェクトを削除する方法
- jQueryまたはJavaScriptを使用して配列からデータを抽出します
- Angular 8で配列を新しい単一オブジェクトにマップする方法は?
関連した質問
- ES6配列filter()メソッドが期待どおりに機能しない
- JavaScriptでフィルターメソッドを操作するのに問題がある
- filterメソッドを使用した後、1つの配列を返しました
- 文字列内からカンマなどを削除するにはどうすればよいですか?
- javascriptで配列の最も繰り返される値を降順でソートして返す関数を作成するにはどうすればよいですか?
- javascriptでオブジェクト値をフラット化する方法
- オブジェクトに対して関数を実行できません:理由を理解できません:javascript
- 配列を並べ替えて、そこからreaminingオブジェクトを削除します
- Reactjs無限スクロールコンポーネントは常に新しいデータをレンダリングします
- Javascriptには特定のケースが含まれています
scenarios
をフィルタリングする必要があると思います 配列とcontacts
両方を配列します。resourceId === "001"
と少なくとも1つの連絡先があるシナリオを取得する場合 次のことができます。