GOOGLE ADS

Montag, 25. April 2022

Wie verwende ich den Spread-Operator in Javascript?

Hallo, ich habe Code wie unten,

async createItem(params: ItemParams, id?: any): Promise<Item> {
const {...fields } = params; //remove spread operator here
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(fields)); //how can i rewrite this
//some logic
}
}

Jetzt möchte ich den Spread-Operator in der Zeile entfernen

const {...fields } = params;

Wie kann ich das machen. Ich habe versucht,

const {fields } = params; // says fields doesnt exist on params error.

könnte mir jemand dabei helfen. Danke


Lösung des Problems

Das ...fieldsTeil könnte in diesem Szenario redundant sein. Der Spread-Operator nimmt alle verbleibenden Schlüssel-Wert-Paare in Ihrem Objekt und weist sie einem neuen Objekt zu.

In Ihrem Fall fieldsist der Wert identisch mit params.

(Hinweis: fieldsund paramssind dem Wert nach gleich, nicht der Referenz.)

Sie können Ihren Code einfach so umschreiben:

async createItem(params: ItemParams, id?: any): Promise<Item> {
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(params));
//some logic
}
}

Wenn die keysToSnakeCaseFunktion ihre Eigenschaften ändert, werden Sie feststellen, dass sich Ihr ursprüngliches paramsObjekt ändert.

Wenn dies der Fall ist, können Sie den Ausbreitungsoperator dort drüben wieder hinzufügen, um einen flachen Klon des paramsObjekts zu erstellen, damit es nicht aktualisiert wird.

async createItem(params: ItemParams, id?: any): Promise<Item> {
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(...params));
//some logic
}
}

Weitere Informationen zur Spread-Syntax finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...