Tengo esta array de strings :
[ 'Back to Main Window: Retour à la fenêtre principale', 'All Client Groups: Tous les groupes de clients', 'Filter by Client: Filtrer par client' ] Me gustaría transformarlo en un object con pares key/value así:
{ 'Back to Main Window': 'Retour à la fenêtre principale', 'All Client Groups': 'Tous les groupes de clients', 'Filter by Client': 'Filtrer par client' } Tengo que intentar usar map() & split() , pero obtengo este resultado en su lugar:
const results = translations.map(translation => { const [key, value] = translation.split(':'); return { key: value }; }); // results returns an "array" with the "key" word as key for all values :( // [ { key: ' Retour à la fenêtre principale' }, // { key: ' Tous les groupes de clients' }, // { key: ' Filtrer par client' } ] //map sobre la matriz y divida cada elemento por ': ' , luego use Object.fromEntries :
const arr = [ 'Back to Main Window: Retour à la fenêtre principale', 'All Client Groups: Tous les groupes de clients', 'Filter by Client: Filtrer par client' ] const res = Object.fromEntries(arr.map(e => e.split(": "))) console.log(res)Una solución alternativa a @Spectric sería usar reduce para transformar su matriz en un objeto.
const arr = [ 'Back to Main Window: Retour à la fenêtre principale', 'All Client Groups: Tous les groupes de clients', 'Filter by Client: Filtrer par client' ]; function transform(arr) { return arr.reduce((obj, line) => { const [key, value] = line.split(': '); obj[key] = value; return obj; }, {}); } console.log(transform(arr));