@wufapexef

Как динамически сгенерировать объекты?

Сначала - огромное спасибо всему сообществу Тостера за помощь - не представляю что такой чайник как я без вас все делал, ребят))

Вопрос такой еще есть.

Вот есть объект, кодержащий другие объекты:

getFilterData: {
  'show all': function () {
    return true
  },
  'terror': function (el) {
    const check = function(element) {
      return element.name === 'terror'
    }
    return el.tags.some(check)
  },
  'army': function (el) {
    const check = function(element) {
      return element.name === 'army'
    }
    return el.tags.some(check)
  }
}


Ключи в данном случае захардожены. Это не очень хорошо, поэтому у меня есть массив со значениями:

let array = ['terror', 'army', 'order', 'happiness']


Таких значений под 20 штук.

Как пройтись по массиву и сгенерировать нужный объект как выше, подставляя вместо ключей значения из массива, но при этом первую функцию 'show all' оставить без изменений?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@lemme
Frontend
const getFilterData = {
  'show all': function () {
    return true
  }
}

let array = ['terror', 'army', 'order', 'happiness']

array.forEach(item => {
  getFilterData[item] = function(el) {
     return el.tags.some(function(element) {
      return element.name === 'army'
    })
  }
})


Но почему не так?

filterBy(type, el) {
  return el.tags.some((element) => element.name === type)
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы