Установка переменных на основе объекта - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть объект, который может включать в себя сочетание свойств, например

{a: 1}, {b: 4}, {c: 2}, {a: 3, b: 1}

, это будет ключ со значением счетчика рядом с ним.

Я хотел бы установить куча переменных в зависимости от того, какие имена ключей находятся в объекте, например:

aOnly = {a: 1}, mixOfAB = {a: 3, b: 1}

Я использую этот logi c в функции, которая в конечном итоге будет возвращать строковое значение. Как лучше всего работать с этим объектом, я пытался использовать переключатель, но он не работал так хорошо. Я мог бы использовать большое количество операторов if / else, но есть ли что-то более аккуратное?

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете сделать что-то вроде этого:

vars = {}

function setVariable(obj) {
    keys = Object.keys(obj)
    name = keys.length == 1 ? keys[0] + 'Only' : 'mixOf' + keys.join('').toUpperCase()
    vars[name] = obj
}

setVariable({a: 1})
console.log(vars)

setVariable({b: 4})
console.log(vars)

setVariable({c: 2})
console.log(vars)

setVariable({a: 3, b: 1})
console.log(vars)

...