Opération pour supprimer des objets égaux à la valeur du tableau
P粉985686557
P粉985686557 2023-09-05 20:56:36
0
2
408

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.

Voici ce que j'ai essayé jusqu'à présent :

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);

Le résultat attendu devrait ressembler à ceci :

var NewCountries = [ {ChoicesID : 4, ChoicesName : 'angola'}, {ChoicesID : 5, ChoicesName : 'argentine'}, {ChoicesID : 6, ChoicesName : 'Arménie'} ];

P粉985686557
P粉985686557

répondre à tous (2)
P粉809110129
var countries = [ {ChoicesID: 1, ChoicesName : '阿富汗'}, {ChoicesID: 2, ChoicesName : '阿尔巴尼亚'}, {ChoicesID: 3, ChoicesName : '阿尔及利亚'}, {ChoicesID: 4, ChoicesName : '安哥拉'}, {ChoicesID: 5, ChoicesName : '阿根廷'}, {ChoicesID: 6, ChoicesName : '亚美尼亚'} ]; var answer = ['阿富汗','阿尔巴尼亚','阿尔及利亚']; var NewCountries = countries.filter(o => !answer.includes(o.ChoicesName)) console.log(NewCountries)

Vous aimez ça ?

    P粉790187507

    Utilisezfilter并删除如果answer中存在它。创建一个answerSet以进行 O(1) 的查找,否则可以使用includes,但includes的时间复杂度为 O(m)(其中 m 是answer数组中的元素数量,n 是countriesle 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)

    var countries = [{ChoicesID: 1, ChoicesName : 'afghanistan'},{ChoicesID: 2, ChoicesName : 'albania'},{ChoicesID: 3, ChoicesName : 'algeria'},{ChoicesID: 4, ChoicesName : 'angola'},{ChoicesID: 5, ChoicesName : 'argentina'},{ChoicesID: 6, ChoicesName : 'armenia'}]; var answer = ['afghanistan','albania','algeria']; const answerSet = new Set(answer) const newCountries = countries.filter(c => !answerSet.has(c.ChoicesName)) console.log(newCountries)
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!