2016-06-29 16 views
0

In der Funktion "superSecret" wird "spy" als Objekt übergeben, das einen Spion darstellt. Ich möchte alle Eigenschaften des Spy-Objekts durchlaufen und alle Werte in die Zeichenfolge "redacted" ändern und dann das aktualisierte Spy-Objekt zurückgeben. Kann jemand meinen Code anschauen und mir helfen, dies zusammen zu machen?Werte eines Objekts in einer Funktion ändern

var superSecret = function(spy){ 
    for(var i = 0; i < spy.length; i++) { 
    "redacted" 
    return 
} 

var jamesBond = { 
    eye: "brown", 
    hair: "black", 
    gun: "goldenGun", 
} 

Antwort

3

In Javascript-Objekte werden als Referenz übergeben, so dass Sie nicht wirklich Ereignis benötigen Sie das Objekt zurück:

var superSecret = function(spy){ 
 
    Object.keys(spy).forEach(function(key){ 
 
    spy[key] = 'redacted'; 
 
    }); 
 
} 
 

 
var jamesBond = { 
 
    eye: "brown", 
 
    hair: "black", 
 
    gun: "goldenGun", 
 
} 
 

 
superSecret(jamesBond); 
 

 
console.log(jamesBond);

Allerdings, wenn Sie das erhalten möchten Originalobjekt und stattdessen eine geänderte Kopie zurückgeben, könnten Sie dies verwenden:

var superSecret = function(spy){ 
 
    var redacted = {}; 
 
    Object.keys(spy).forEach(function(key){ 
 
    redacted[key] = 'redacted'; 
 
    }); 
 
    return redacted; 
 
} 
 

 
var jamesBond = { 
 
    eye: "brown", 
 
    hair: "black", 
 
    gun: "goldenGun", 
 
} 
 

 
var unknownHero = superSecret(jamesBond); 
 

 
console.log(jamesBond); 
 
console.log(unknownHero);

Verwandte Themen