Opération pour supprimer des objets égaux à la valeur du tableau
P粉985686557
2023-09-05 20:56:36
<p>J'ai un tableau d'objets et un tableau normal, et si un élément du tableau d'objets est égal à un élément du tableau normal, je souhaite le supprimer. C'est déroutant pour moi. </p>
<p>Voici ce que j'ai essayé jusqu'à présent : </p>
<p>
<pre class="snippet-code-js lang-js Prettyprint-override"><code>var pays =
[
{ChoicesID : 1, ChoicesName : 'afghanistan'},
{ChoicesID : 2, ChoicesName : 'albanie'},
{ChoicesID : 3, ChoicesName : 'Algérie'},
{ChoicesID : 4, ChoicesName : 'angola'},
{ChoicesID : 5, ChoicesName : 'argentine'},
{ChoicesID : 6, ChoicesName : 'Arménie'}
];
var réponse = ['afghanistan','albanie','algérie'];
var ChoicesName = new Set(countries.map(d => d.ChoicesName));
var NewCountries = [...ChoicesName, ...answer.filter(d => !ChoicesName.has(countries.find(o => o.ChoicesName === réponse)))];
console.log(NouveauxPays);</code></pre>
</p>
<p>Le résultat attendu devrait ressembler à ceci : </p>
<pre class="brush:php;toolbar:false;">var NewCountries =
[
{ChoicesID : 4, ChoicesName : 'angola'},
{ChoicesID : 5, ChoicesName : 'argentine'},
{ChoicesID : 6, ChoicesName : 'Arménie'}
];</pre></p>
Vous aimez ça ?
Utilisez
filter
并删除如果answer
中存在它。创建一个answerSet
以进行 O(1) 的查找,否则可以使用includes
,但includes
的时间复杂度为 O(m)(其中 m 是answer
数组中的元素数量,n 是countries
le nombre d'éléments dans le tableau)Utiliser l'ensemble
O(m) + O(n).O(1) = O(n) (étant donné n>m)
L'utilisation comprend
O(n).O(m) = O(nm)