angular - Hur man slår samman två objektdata till ett


Jag har två datamängder som behöver slås samman till en. Mina exempeldata ser ut så här..

Första data

{Address: "Test", City: "test", State: "Test"}

Andra Data

{UserId:"John", Name: "John"}

När jag använder den här metoden const a=[].concat(this.firstData, this.secondData); blir det en array, inte kombineras till en, exempel som nedan:

(2)[{…}, {…}]

[0]{Address: "Test", City: "test", State: "Test", …}
[1]{UserId:"John", Name: "John", …}

Vilken metod ska jag använda för att förenas till en

Svar #1

Du kan använda spridningsoperatorn på båda:

const firstData = {Address: "Test", City: "test", State: "Test"};
const secondData = {UserId:"John", Name: "John"};

const merged = { ...firstData, ...secondData };

console.log(merged)

Användbara referenser:

  • Dokumentation för variabeldeklarationer/spridning i TypeScript-handboken.
  • Dokumentation för JavaScripts spread-operator (MDN).

Svar #2

Du kan använda Object.assign som kopierar alla uppräkningsbara egenskaper från ett eller flera objekt till ett målobjekt. Det returnerar målobjektet.

var x = { name: 'Jhon', last: 'Lennon' };
var y = { bday: new Date('1940-10-09') };
var z = Object.assign({}, x, y);

console.log(z);

// Output:
// { name: 'Jhon', last: 'Lennon', bday: 1940-10-09T00:00:00.000Z }

Mer om Object.assign här: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign