JavaScript中如何将字符串数组转换为指定结构的对象数组
实现方案
你可以通过数组遍历+字符串拆分的方式完成转换,核心逻辑是对每个字符串按分隔符拆解出键值对后组装为对象,示例代码如下:
const originalArr = [ "test: Yes, name: user1, number: +9190000000", "test: Yes, name: user2, number: +9162000000", ]; const result = originalArr.map(str => { const obj = {}; // 先按`, `拆分每个键值对片段 const keyValuePairs = str.split(', '); keyValuePairs.forEach(pair => { // 再按`: `拆分键和值 const [key, value] = pair.split(': '); obj[key] = value; }); return obj; }); console.log(result);
如果需要更简洁的写法,也可以用Object.fromEntries简化逻辑:
const result = originalArr.map(str => Object.fromEntries( str.split(', ').map(pair => pair.split(': ')) ) );
逻辑说明
- 用
Array.prototype.map遍历原数组,对每个字符串单独做转换 - 第一层以
,为分隔符拆分单条字符串,得到多个独立的键值对片段 - 第二层对每个键值对片段以
:为分隔符拆分,得到[键, 值]格式的二元数组 - 最终将二元数组传入
Object.fromEntries即可直接生成对应的对象
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

