Как сделать функцию
Подскажите как сделать наиболее короткую функцию используя 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, время: 08:33. |