Wie vergleiche ich zwei Arrays und gebe die Differenz zurück? (In beide Richtungen arbeiten?)

user5113508

Ich möchte dies in Vanille, ES6 JS, erreichen. Bitte keine jQuery! (Lodash ist akzeptabel!)

Grundsätzlich habe ich 2 Arrays, eines mit Objekten und eines mit IDs.

const old = [
  {
    id: 1,
    name: 'object_1',
  },
  {
    id: 2,
    name: 'object_2',
  },
];

const newIds = [1, 2, 3];

Meine aktuelle Lösung für dieses Problem ist wie gezeigt;

const difference = newIds.filter(n => !old.some(o => o.id === n));

Dies führt zur Rückgabe [3].

Grundsätzlich verwende ich dies derzeit, um festzustellen, ob etwas fehlt, und um es in meiner Datenbank zu erstellen, wenn es fehlt.

Dann muss ich jedoch das Gegenteil tun. Wenn etwas entfernt wird, muss ich den Artikel vergleichen und entfernen.

Das Problem dabei ist; Diese aktuelle Lösung funktioniert nur "1-Wege", daher kann ich nicht das tun, was ich oben angegeben habe.

Im Idealfall möchte ich nur eine Anweisung, ob sie erstellt oder gelöscht wird, und ich möchte nur, dass sie die IDs von Dingen zurückgibt, die in beiden Arrays fehlen.

Hoffentlich macht das Sinn.

Ray Toal

Um die Werte zu finden, die in einem, aber nicht in dem anderen erscheinen, verwenden Sie lodashs

_.xor(array1, array2);

In Ihrem Fall:

> const _ = require('lodash');

> const old = [
...   { id: 1, name: 'object_1' },
...   { id: 2, name: 'object_2' },
...   { id: 3, name: 'object_3' },
...   { id: 4, name: 'object_4' },
... ];

> const newIds = [1, 3, 5, 7];

> _.xor(old.map(x => x.id), newIds)
[ 2, 4, 5, 7 ]

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie vergleiche ich zwei Arrays und gebe dann den Index der Differenz zurück?

Wie vergleiche ich zwei DateTime-Zeichenfolgen und gebe die Differenz in Stunden zurück? (Bash Shell)

Wie vergleiche ich Daten in zwei Arrays und gebe das nicht übereinstimmende Array in Javascript zurück?

Wie vergleiche ich zwei 2D-Arrays und gebe das Ergebnis in einer bestimmten Reihenfolge zurück (Google Apps Script)?

Wie gebe ich die ähnlichen Werte zwischen zwei Arrays und in der Reihenfolge der Sekunde zurück?

Wie vergleiche ich zwei Listen und gebe 4 Kategorienlisten zurück?

Wie vergleiche ich zwei Objekte mit lodash und gebe ein neues Objekt zurück?

Wie vergleiche ich zwei Datenrahmen und gebe das Ergebnis zurück?

Wie vergleiche ich zwei Zeichenfolgenwerte und gebe etwas zurück, was nicht beendet ist?

Wie vergleiche ich 2 Arrays und vergleiche die Differenz derselben ID in PHP?

Wie finde ich die nächsten Elemente in zwei Arrays ohne Wiederholungen [dupliziert] und gebe die Indizes von zwei Arrays in Python zurück?

mongodb vergleicht zwei Arrays und gibt die Differenz zurück

Wie vergleiche ich zwei Arrays unterschiedlicher Größe und gebe Farbe in UICollectionviewcell gemäß Vergleich an?

Wie vergleiche ich zwei UTCTime-Werte und erhalte die Differenz in Tagen?

Wie kombiniere ich zwei Arrays von ganzen Zahlen und gebe den Durchschnitt zurück?

Wie berechne ich die Differenz zwischen zwei Tagen in Stunden in PostgreSQL und kehre als Tage zurück?

Wie gebe ich den Index von zwei Arrays zurück?

Wie vergleiche ich einen Array-Satz von Elementen und gebe die gewünschten Elemente zurück?

Wie vergleiche ich einen Datenrahmen mit einer Liste und gebe Werte im Datenrahmen zurück, die mit der Liste übereinstimmen?

Wie vergleiche ich eine bestimmte Zelle mit einem Spaltenbereich und gebe eine Zeichenfolge zurück, die dem Spaltenbereich zugeordnet ist?

GAS / JavaScript: Wie gebe ich das Ergebnis zurück und nicht beide?

Wie vergleiche ich 2 Listen und gebe eine Liste der größten Teilmenge zurück?

Wie vergleiche ich Tabellen mit INNER JOIN und gebe true zurück?

Wie vergleiche ich Elemente in einem Objekt und gebe den höheren Wert zurück? * Javascript *

Wie vergleiche ich Werte derselben Spalte und gebe wahr/falsch zurück?

Wie kann ich Networkx dazu bringen, beide Gewichte an einer Kante anzuzeigen, die in zwei Richtungen verläuft?

Wie vergleiche ich zwei Arrays und alarmiere das Ergebnis?

Wie vergleiche ich zwei Arrays und erhalte eine übereinstimmende Ausgabe?

Wie gebe ich bei Verwendung von Filter 2 Werte von zwei Arrays zurück?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv