回答編集履歴
1
テキスト修正
test
CHANGED
@@ -45,3 +45,23 @@
|
|
45
45
|
|
46
46
|
|
47
47
|
上記のサンプルでは、確認のため、`listA` に追加で `exist` が 1 の要素`{ filename: "7.jpg", exist: 1 }`を加え、`listB.Items` に `7.jpg` の要素を2個追加しています。これらも除外されることを確認できます。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
### 追記
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
`exist` が1の `filename` の値を集めたSet(または他の回答者様から提示されているように、配列)を作ってから、これを使って filter するのが効率的だと思いますが、これらの中間生成物を作らないでやろうとすると、以下で出来ます。
|
56
|
+
|
57
|
+
```javascript
|
58
|
+
|
59
|
+
listB.Items = listB.Items.filter(e1 => !listA.find(e2 => e1.filename === e2.filename));
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
- 動作確認用サンプル: [https://codepen.io/jun68ykt/pen/OJVXBXN?editors=0012](https://codepen.io/jun68ykt/pen/OJVXBXN?editors=0012)
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
ただしこれは、`filter` のループの中で、毎回 `find` するので非効率です。
|