如何拆分字符串数组和 return 具有 key/value 对的单个对象
How to split an array of strings & return a single object with key/value pairs
我有这个 array
of strings
:
[
'Back to Main Window: Retour à la fenêtre principale',
'All Client Groups: Tous les groupes de clients',
'Filter by Client: Filtrer par client'
]
我想将其转换为 object
和 key/value
对,如下所示:
{
'Back to Main Window': 'Retour à la fenêtre principale',
'All Client Groups': 'Tous les groupes de clients',
'Filter by Client': 'Filtrer par client'
}
我不得不尝试使用 map()
& split()
,但我得到的是这个输出:
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
over the array and split each item by ': '
, then 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)
@Spectric 的替代解决方案是使用 reduce
,将数组转换为对象。
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));
我有这个 array
of strings
:
[
'Back to Main Window: Retour à la fenêtre principale',
'All Client Groups: Tous les groupes de clients',
'Filter by Client: Filtrer par client'
]
我想将其转换为 object
和 key/value
对,如下所示:
{
'Back to Main Window': 'Retour à la fenêtre principale',
'All Client Groups': 'Tous les groupes de clients',
'Filter by Client': 'Filtrer par client'
}
我不得不尝试使用 map()
& split()
,但我得到的是这个输出:
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
over the array and split each item by ': '
, then 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)
@Spectric 的替代解决方案是使用 reduce
,将数组转换为对象。
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));