2017-06-08 1 views
1

Ich habe ein Objekt, das wie folgt aussieht:ersetzen Objektfelder

PETForm

{ 
name:"Bobo", 
type:"Golden Retriever", 
food:null, 
toys:null, 
.... 
} 

ich die Felder mit den Werten von null auf eine leere Zeichenfolge wie folgt ersetzt werden soll:

Ergebnis :

{ 
name:"Bobo", 
type:"Golden Retriever", 
food:"", 
toys:"", 
.... 
} 

tat ich folgendes:

Object.keys(PetForm).forEach((key) => (PetForm[key] === null) && PetForm[key] == ""); 

Fehle ich etwas in dieser Methode?

Antwort

3

var petForm = { 
 
    name: "Bobo", 
 
    type: "Golden Retriever", 
 
    food: null, 
 
    toys: null 
 
} 
 
Object.keys(petForm).forEach(function(item) { 
 
    if (petForm[item] === null) { 
 

 
    petForm[item] = ""; 
 
    } 
 

 
}) 
 

 
console.log(petForm)

1

Wenn Sie versuchen, den Wert in der && Operator zuweisen, müssen Sie nur ein Gleichheitszeichen: PetForm[key] = ""

+0

Können Sie bitte Ihre Antwort durch einen schnellen Code-Schnipsel erarbeiten. Es hilft wirklich! – RBT

1

Falls Sie die PETForm Karte und zurück halten wollen ein neues Objekt, können Sie reduzieren Funktion verwenden.

var petform = { 
 
    name:"Bobo", 
 
    type:"Golden Retriever", 
 
    food:null, 
 
    toys:null, 
 
} 
 

 
var res = Object.keys(petform).reduce((acc, curr) => { acc[curr] = petform[curr] ? petform[curr] : '' ; return acc; }, {}); 
 

 
console.log(res)

0

var obj = { 
 
name:"Bobo", 
 
type:"Golden Retriever", 
 
food:null, 
 
toys:null 
 
}; 
 

 
for (var key in obj) { 
 
    if (obj.hasOwnProperty(key)) { 
 
    (obj[key] === null) && (obj[key] = ''); 
 
    } 
 
} 
 

 
console.log(obj);

Verwandte Themen