Задать вопрос
vessels
@vessels
Ни черта не понял, но очень интересно!

Как добавить свойство всем элементам массива?

У меня есть код, там я с помощью find хочу добавить к каждому объекту значение когда компонент смонтирован. Но увы.
Можете подсказать как правильно добавлять значения к каждому объекту перед или после монтирования компонента?
  • Вопрос задан
  • 859 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Avenue
    Javascript. Frontend
    5 месяцев
    Далее
  • Skillfactory
    Профессия Frontend-разработчик PRO
    14 месяцев
    Далее
  • Level UP
    Фронтенд разработчик (Junior)
    6 месяцев
    Далее
  • OTUS
    Vue.js разработчик
    4 месяца
    Далее
  • GB (GeekBrains)
    Профессия Фронтенд-разработчик
    9 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Какой find, вы чего? Был массив, и остаться должен массив. Используйте map:

.map(n => ({ ...n, actv: false }))

или

.map(n => (n.actv = false, n))

или после монтирования компонента?

Лучше бы конечно так не делать, но если вдруг...

Чтобы реактивность заработала, надо будет или использовать $set:

mounted() {
  this.postsData.forEach(n => this.$set(n, 'actv', false));
},

или создать новый массив:

mounted() {
  this.postsData = this.postsData.map(n => ({ ...n, actv: false }));
},
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы