2017-06-08 12 views
1

I持ってこのようになりますオブジェクト:交換するオブジェクトフィールド

PetForm

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

私はこのような空の文字列にヌルの値を持つフィールドを置き換えたい:

結果:私は、次のようでした

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

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

この方法で何か不足していますか?

答えて

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

あなたは&&オペレータに値を代入しようとしている場合は、あなただけの1は、等号必要があります:あなたはpetformマップとリターンを維持したい場合にはPetForm[key] = ""

+0

あなたは、迅速なコードスニペットを通して、あなたの答えを詳しく説明していただけます。それは本当に役立ちます! – RBT

1

を新しいオブジェクト、あなたはreduce関数を使用することができます。

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);