c++ - Filtrage d'un sous-ensemble d'un tableau
某草草
某草草 2017-05-19 10:42:41
0
4
718

var a = [1,2,3,4,5,6];
var b = [2,3,6];
Le tableau b est un sous-ensemble du tableau a, et enfin, supprimez les éléments contenant b de a. Quelles sont les meilleures options ?

某草草
某草草

répondre à tous(4)
某草草

https://lodash.com/docs/4.17....

巴扎黑
function diff(a1, a2) {
  return a1.concat(a2).filter(function (val, index, arr) {
    return arr.indexOf(val) === arr.lastIndexOf(val);
  });
}
function diff2(a1, a2) {
  return a1.filter(val => {
    return a2.indexOf(val) === -1;
  })
}
小葫芦

Utilisez une méthode native pour le résoudre

L'utilisation de la méthode filter d'Array peut résoudre votre problème. La mise en œuvre spécifique est très simple, et d'autres y ont également répondu.

Solution avec l'aide de bibliothèques tierces

Si cela ne vous dérange pas de référencer des bibliothèques tierces, il est recommandé d'introduire lodash. Cette bibliothèque contient un grand nombre de méthodes de traitement des tableaux, si vous avez de nombreux scénarios d'opération de tableau, cela est fortement recommandé.

Il a une fonction spécifiquement pour résoudre ce problème, appelée différence. Bien sûr, un camarade de classe a déjà dit que vous pouvez également l'utiliser sans, mais ce n'est pas aussi pratique à utiliser que la différence.

Le "_" dans le code ci-dessous est un objet par défaut après l'introduction de lodash. Toutes les méthodes définies par lodash sont en dessous, un peu comme le "$" utilisé après l'introduction de jQuery

.
var a = [1,2,3,4,5,6];
var b = [2,3,6];

var result = _.difference(a, b); // result=[1,4,5]
迷茫

Pourquoi utiliser la méthode loadash,直接用数组的filter :

var a = [1,2,3,4,5,6];
var b = [2,3,6];

var ans = a.filter((n) => !b.includes(n));
console.log(ans);    //[1, 4, 5];
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal