Hier ist mein erstes JSON-Array-Format:
this.columnNames = [
{field : "Name"},
{field : "Address"},
{field : "Age"}
];
Hier ist mein erstes JSON-Array-Format:
this.rowData = [
{Name : "Praveen",Address : "aiff",Age : "12",w : "1",e : "8"},
{Name : "Akashay",Address : "xvn",Age : "15",w : "2",e : "7"},
{Name : "Bala",Address : "hjk",Age : "16",w : "3",e : "6"},
{Name : "Charu",Address : "sss",Age : "17",w : "4",e : "5"},
];
Hier möchte ich den array(columnNames)
Wert vergleichen, der im ersten Array vorhanden ist, und KEYS, der im zweiten Array vorhanden ist. Wenn es gleich ist, möchte ich diese übereinstimmenden Daten von der zweiten array(rowData)
in das neue Array verschieben.
Und ich möchte mein Endergebnis so sehen:
public rowData: any =[
{Name : "Praveen",Address : "aiff",Age : "12"},
{Name : "Akashay",Address : "xvn",Age : "15"},
{Name : "Bala",Address : "hjk",Age : "16"},
{Name : "Charu",Address : "sss",Age : "17"},
];
arrays
angular
comparison
Praveen Sivanadiyar
quelle
quelle
Antworten:
Holen Sie sich die Felder von jedem Objekt in Ihrem
columnNames
Array mit.map()
. Ordnen Sie dann jedes ObjektrowData
einem neuen Objekt zu, das mit erstellt wurde.reduce()
und das nur die Schlüssel aus Ihremfields
Array enthält:Wenn Sie unterstützen können
Object.fromEntries()
(das ein Array verschachtelter[key, value]
Paare verwendet und daraus ein Objekt erstellt), müssen Sie Folgendes nicht verwenden.reduce()
:quelle
Sie können
filter
Ihre Objekteigenschaften basierend auf demcolumnNames
Array festlegen und dann einfach ein Objekt erstellen mitObject.fromEntries
:Ein Beispiel:
Oder mehr debuggbare Version:
Ein Beispiel:
Object.fromEntries ist die Methode, die eine Liste von Schlüssel-Wert-Paaren in ein Objekt umwandelt.
Die folgende Zeile bedeutet, dass wir das Array basierend auf dem Array filtern () .
allProperies
columnNames
Die Methode some () gibt zurück,
true
wenn eine Eigenschaft voncolumnNames
vorhanden ist inallProperties
:quelle
Speichern Sie alle Feldnamen in einer Variablen
keys
mit .map . Durchlaufen Sie dann das ursprüngliche Array und erstellen Sie ein Objekt mit den darin enthaltenen Eigenschaftenkeys
Versuchen Sie es so:
Arbeitsdemo
quelle
obj
ist ein neues leeres Objekt.obj[key] = item[key]
bedeutet, in der ersten Schleife ist der Schlüssel "Name", alsoobj[key]
wird{Name: }
unditem.Name
istPraveen
, so wird das Ergebnis sein{Name: "Praveen" }