如何拆分字符串数组并返回带有键/值对的单个对象
Posted
技术标签:
【中文标题】如何拆分字符串数组并返回带有键/值对的单个对象【英文标题】:How to split an array of strings & return a single object with key/value pairs 【发布时间】:2021-12-16 13:24:19 【问题描述】:我有这个array
的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' ]
//
【问题讨论】:
您只需在退货中使用computed property 名称:return [key]: value;
这能回答你的问题吗? Dynamic object property names?
【参考方案1】:
map
覆盖数组,split 每一项通过': '
,然后使用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)
【讨论】:
【参考方案2】:@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));
【讨论】:
以上是关于如何拆分字符串数组并返回带有键/值对的单个对象的主要内容,如果未能解决你的问题,请参考以下文章