替换对象字段

时间:2017-06-08 04:35:57

标签: javascript

我有一个看起来像这样的对象:

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] == "");

我在这种方法中遗漏了什么?

4 个答案:

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