Dynami c свойство объекта javascript - PullRequest
0 голосов
/ 10 февраля 2020

есть ли синтаксис с javascript es6 или es-next для достижения следующего поведения

let t = {
    text: 'hello world',
    [shouldShow ? ...{'show' : 'test text'} : ''],
    test: 21
}

Я хочу, чтобы, если shouldShow истинно, объект t должен был

{
    text: 'hello world',
    show: 'test text',
    test: 21
}

и если shouldShow равно false, объект t будет

{
    text: 'hello world',
    test: 21
}

Я знаю, я могу сделать это с помощью if / else, но я спрашиваю, существует ли синтаксис, который я могу использовать только для одной строки код

1 Ответ

2 голосов
/ 18 февраля 2020

Надеюсь, это решит:

В случае, если вы хотите, чтобы свойство show было там, когда shouldShow имеет значение false, попробуйте следующее:

// this would give show:"" when shouldShow is false, else it will give show="test text"
let shouldShow = false;
let t = {
  text: "hello world",
  show: shouldShow ? "test text" : "",
  test: 21
}; 

Если вы хотите, чтобы оно было удалено из сам объект затем попробуйте это,

// this would make show="test text" when shouldShow is true else remove it from "t"
let shouldShow = true;
let t = {
  text: "hello world",
  test: 21
};
t = shouldShow ? { ...t, show: "test text" } : t; 

...