2017-03-17 3 views
-2

Ich versuche, Objekt zu zerstören, indem Params übergeben, aber ich kann es nicht erreichen, wie ich will. Param's sind string's.Zerstöre Objekt mit dynamischen Parametern

function(param){ 
 
    const obj = { 
 
    foo: 'foo', 
 
    bar: 'bar' 
 
    } 
 
    
 
    const {[param], ...destructedObj} = obj; // where param === 'foo' || 'bar' 
 
    return obj; 
 
}

+2

Ich verstehe nicht, was Sie erreichen möchten. Können Sie ein Beispiel geben, wie diese Funktion funktionieren würde? –

+2

@ p.s.w.g Ich denke, dass das OP versucht, einen Eigenschaftsnamen auszuwählen, der durch Destrukturierung herausgezogen werden soll, z.B. '{foo} = obj', aber mit' {[param]} = obj', um den Variablennamen auszuwählen. Ich bin mir ziemlich sicher, dass dies nicht möglich ist, da dies die Erstellung von dynamisch benannten lokalen Variablen ermöglichen würde (was erhebliche Auswirkungen auf Optimierungen hätte, die davon ausgehen, dass sich die Menge der Variablen, die für jeden Abschluss in Frage kommen, nicht ändert). – apsillers

+0

@apsillers yep das ist was ich dachte, Danke für die Antwort; scheint wirklich logisch, meh. Ich werde versuchen, einen anderen Weg zu finden, das zu tun x) – nehel

Antwort

0

Sie können Verwendung Object.keys auf Tasten abrufen und dann entscheiden, welche Schlüssel zu verwenden, um selektiv das Objekt zur Hand Destruct:

const obj = { 
 
    foo: 1, 
 
    bar: 2 
 
}; 
 

 
const keys = Object.keys(obj); 
 

 
const { [keys[0]]: x } = obj; 
 

 
console.log(`${keys[0]}:${x}`);

Aber ich bin mir nicht sicher, wo Sie gehst du damit?

Verwandte Themen