Заменить поля объекта

1

У меня есть объект, который выглядит так:

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 ответа

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 и вернуть новый объект, вы можете использовать функцию уменьшения.

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

Если вы пытаетесь присвоить значение в операторе &&, вам нужен только один знак равенства: PetForm[key] = ""

  • 0
    Можете ли вы разработать свой ответ через быстрый фрагмент кода. Это действительно помогает!
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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню