У меня есть объект со свойством массива { property: [a, b] }
, и я хочу иметь список дублированных объектов, где [{ property: [a] }, { property: [b] }]
Ввод:
const input = {
url: 'getting-started',
locales: ['en-GB', 'en-JP']
}
Ожидаемая форма:
const expected = [{
url: 'getting-started',
locales: ['en-GB']
}, {
url: 'getting-started',
locales: ['en-JP']
}]
Функция, которую я написал, немного нечитаема и даже не чиста:
const duplicateByLocales = article => R.pipe(
R.prop('locales'),
R.invert,
R.mapObjIndexed((val, locale) =>
R.pipe(
R.clone,
R.assoc('locales', R.of(locale))
)(article)),
R.values
)(article)
Это работает, но мне интересно, как может выглядеть лучше? Спасибо!