オブジェクトの配列(JSONとか)を別の配列でフィルタリングする
投稿日:2019年09月10日
配列操作(JSONとか)で毎回どうするんだっけって忘れるのでメモ。
フィルタリングしたい配列とフィルタリングするために使用する値がはいった配列があるとします。
例えば、APIでフェッチしてきた情報をチェックボックスで複数選択した内容だけPOSTしたいときや、選択したチェックボックスの name だけ欲しい〜みたいな状況です。
const arr1 = [
{
id: 1,
name: 'モリサキ'
},
{
id: 2,
name: 'オオイズミ'
},
{
id: 3,
name: 'ヤスダ'
},
{
id: 4,
name: 'オトオ'
},
{
id: 5,
name: 'トツギ'
}
]
const arr2 = [2, 3]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
テスト関数にindexOfを使ってあげるとよい
const arr3 = arr1.filter(item => {
// arr2に含まれる数値と一致したら true
return arr2.indexOf(item.id) >= 0
})
console.log(arr3)
// [{ id: 2, name: 'オオイズミ' }, { id: 3, name: 'ヤスダ' }]
1
2
3
4
5
6
7
2
3
4
5
6
7
以上です。