Как сделать функцию
Подскажите как сделать наиболее короткую функцию используя es6
const createObj = (...props) => ??? Чтоб при вызове: createObj('a', 'b', 'c') Получить {'a': 'a', 'b': 'b', 'c': 'c'} Хотелось бы, чтоб при создании объекта, его ключи и значения задавались короткой записью: вместо {'a': 'a'}, просто {'a'} ( как тут https://learn.javascript.ru/object#s...-iz-peremennoy) |
lgick,
пока так ...
const createObj = (...props) => Object.fromEntries(new Map(props.map(a => [a,a])));
console.log(createObj('a', 'b', 'c'))
|
lgick,
или так ... )))
const createObj = (...props) => props.reduce((a, b) => Object.assign( a, {[b] : b}), {});
console.log(createObj('a', 'b', 'c'))
|
const createObj = (...a) => a.reduce((o, v) => ({...o, [v]: v}), {});
|
lgick,
const createObj = (...props) => props.reduce((a, b) => ({...a, [b] : b}), {});
console.log(createObj('a', 'b', 'c'))
|
Alexandroppolus,
:) |
хотя спредов по-моему нет в этом вашем es6
const createObj = (...a) => a.reduce((o, v) => (o[v] = v, o), {});
|
const createObj = (...a) => Object.fromEntries(a.map(v => [v, v]))
const createObj = (...a) => (o => (a.forEach(v => o[v] = v), o))({})
еще парочка вариантов |
const createObj = (...a) => Object.fromEntries(new Set(a).entries()) |
| Часовой пояс GMT +3, время: 16:42. |