我有一个看起来像这样的对象:
PetForm
{
name:"Bobo",
type:"Golden Retriever",
food:null,
toys:null,
....
}
我想将值为null的字段替换为空字符串,如下所示:
结果:
{
name:"Bobo",
type:"Golden Retriever",
food:"",
toys:"",
....
}
我做了以下事情:
Object.keys(PetForm).forEach((key) => (PetForm[key] === null) && PetForm[key] == "");
我在这种方法中遗漏了什么?
答案 0 :(得分: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[key] = ""
答案 2 :(得分: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)

答案 3 :(得分: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);