Установка всех свойств объекта на одно и то же значение - PullRequest
0 голосов
/ 09 мая 2018

Наличие объекта с такой структурой:

anObject = {
    "a_0" : [{"isGood": true, "parameters": [{...}]}],
    "a_1" : [{"isGood": false, "parameters": [{...}]}],
    "a_2" : [{"isGood": false, "parameters": [{...}]}],
    ...
};

Я хочу установить для всех isGood значений значение true. Я пытался использовать _forOwn для прохождения объекта и forEach для прохождения каждого свойства, но, похоже, это неправильный подход.

_forOwn(this.editAlertsByType, (key, value) => {
    value.forEach(element => {
        element.isSelected = false;
    });
});

Ошибка говорит:

value.forEach не является функцией

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

на самом деле вы были очень близки, вам нужно использовать Object.keys(), чтобы получить keys вашего anObject объекта, а затем зациклить их и, наконец, изменить каждый array.

anObject = {
  "a_0": [{
    "isGood": true,
    "parameters": [{}]
  }],
  "a_1": [{
    "isGood": false,
    "parameters": [{}],
  }],
  "a_2": [{
    "isGood": false,
    "parameters": [{}],
  }],
  //...
};

Object.keys(anObject).forEach(k => {
  anObject[k] = anObject[k].map(item => {
    item.isGood = true;
    return item;
  });
})
console.log(anObject);
0 голосов
/ 09 мая 2018

Используйте forEach() и map() на объекте anObject

var anObject = {
    "a_0" : [{"isGood": true, "parameters": []}],
    "a_1" : [{"isGood": false, "parameters": []}],
    "a_2" : [{"isGood": false, "parameters": []}]
};

Object.keys(anObject).forEach((key)=>{
 anObject[key].map(obj => obj.isGood = true);
});

console.log(anObject);
...