Я хочу установить некоторые ключи в объекте в зависимости от значения флага
Например,
const ourFlag = true //true or false depends on case
const ourObject = {
name: 'Pablo',
secondName: 'Picasso',
[ourFlag && 'age']: 20,
[ourFlag && 'moreComplexValue']: [
{
val: true
},
{
val: false
}
]
}
Пока ourFlag
установлен на true
, все работает, как я ожидал,но когда я изменяю его значение на false
, начинают появляться некоторые странные вещи.
свойство age
больше не присутствует - хорошо, но свойство moreComplexValue
теперь false
КодЯ получаю, когда флаг равен false
:
{
name: 'Pablo',
secondName: 'Picasso',
// age disappear as I expected
false: [ //why!?!
{
val: true
},
{
val: false
}
]
}
Код, который я получаю, когда флаг равен true
:
{ . //brilliant everything is fine
name: 'Pablo',
secondName: 'Picasso',
age: 20,
moreComplexValue: [
{
val: true
},
{
val: false
}
]
}
Есть ли способ справиться с этими вычисленными свойствами?