Size: a a a

JavaScript — русскоговорящее сообщество

2020 November 12

VS

Vladimir Sadchikov in JavaScript — русскоговорящее сообщество
ymdev
Слушайте, мне тут вопрос задали сегодня, как я могу на этапе создания объекта добавить туда или убрать элементы по условия.
Грубо говоря
const a = {}
if (5 > 2) {
   a.field = ''
}

if (5 < 2) {
   a.field1 = ''
}
Я додумался только до такого
const a = {
   ...(5>2 && {field: ''}),
   ...(5<2 && {field1: ''}),
}

У кого какие есть идеи, как это еще можно сделать?
ок, на счет добавить ты справился, а убрать?
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
Славик
не возвращаешь результат функции
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {if(x === 1) { return x * 2 } });
console.log(map1);
> Array [2, undefined, undefined, undefined]


похоже, js работает не так, как мне бы хотелось.
источник

y

ymdev in JavaScript — русскоговорящее сообщество
Игорь А.
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {if(x === 1) {x * 2 } });
console.log(map1);
> Array [undefined, undefined, undefined, undefined]


что я делаю неправильно?
в твоем варианте надо так
array1.map(x => {
   if (x === 1) {
       return x * 2
   }

   return x
})
источник

С

Славик in JavaScript — русскоговорящее сообщество
теперь ты не возвращаешь результат, если у тебя x !== 1
источник

AV

Alex V in JavaScript — русскоговорящее сообщество
Игорь А.
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {if(x === 1) { return x * 2 } });
console.log(map1);
> Array [2, undefined, undefined, undefined]


похоже, js работает не так, как мне бы хотелось.
осталось понять чего ты хочешь..
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
Alex V
осталось понять чего ты хочешь..
list comprehension очевидно
источник

AV

Alex V in JavaScript — русскоговорящее сообщество
вообще неочевидно) я вот не умею читать чужие мысли - js тоже.. очевидно)
источник

y

ymdev in JavaScript — русскоговорящее сообщество
Vladimir Sadchikov
ок, на счет добавить ты справился, а убрать?
в каком смысле убрать? Так если поле не удовлетворяет условию, то оно не будет создано. Или ты про что?
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
в целом мне надо модифицировать список in-place
источник

VS

Vladimir Sadchikov in JavaScript — русскоговорящее сообщество
ymdev
в каком смысле убрать? Так если поле не удовлетворяет условию, то оно не будет создано. Или ты про что?
как я могу на этапе создания объекта добавить туда или убрать элементы по условия. (с)
источник

С

Славик in JavaScript — русскоговорящее сообщество
о, тогда ты вообще не то делаешь
источник

y

ymdev in JavaScript — русскоговорящее сообщество
Vladimir Sadchikov
как я могу на этапе создания объекта добавить туда или убрать элементы по условия. (с)
Видимо, не так выразился
...(false && {a: ''}) не создаст поля a в объекте. Именно это и хотелось
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
Славик
о, тогда ты вообще не то делаешь
как правильно?
источник

С

Славик in JavaScript — русскоговорящее сообщество
Игорь А.
как правильно?
правильно делать это как и сказано "in-place"
источник

С

Славик in JavaScript — русскоговорящее сообщество
а у тебя создание нового массива происходит
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
Славик
а у тебя создание нового массива происходит
это был отдельный вопрос, который я хотел задать )
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
in-place я получаю "Error: invalid assignment to const 'array1'"
источник

ИА

Игорь А. in JavaScript — русскоговорящее сообщество
возможно, js вообще так не работает
источник

AV

Alex V in JavaScript — русскоговорящее сообщество
а зачем константу переопределять?
источник

С

Славик in JavaScript — русскоговорящее сообщество
или просто ты не разобрался в вопросе
источник