2017-06-08 45 views
1

我有一個對象,看起來像這樣:更換對象字段

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

如果你想在&&運營商分配的值,你只需要一個等號:PetForm[key] = ""

+0

能否請您通過簡單的代碼片段闡述你的答案。這真的有幫助! – RBT

1

如果你想保持petform地圖和回報一個新的對象,你可以使用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);