You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串数组转换为Javascript对象 实现多用户信息键值映射

问题根源
  • 你使用的分割正则/[\s,]+/会合并连续的逗号、空格分隔符,直接丢失为空的字段,最终得到的数组字段顺序已经错位
  • 没有按照单用户固定4个字段的规则对字段数组做分组,所有字段直接传入单个构造函数,自然只能生成1个对象
修复后代码
function Person(name, email, age, occupation) {
  this.name = name;
  this.email = email || ''; // 空字段默认赋值为空字符串,避免出现undefined
  this.age = age ? Number(age) : ''; // 年龄统一转数字类型,不需要可删掉
  this.occupation = occupation || '';
}

let string = "Norbert,norbert@test.com,51,Coder Noemi,,,Teacher Rachel,rachel@test.com,,"
// 先把用户分界的空格替换为逗号,再按逗号分割,完整保留空字段
let allFields = string.replaceAll(' ', ',').split(',');
// 按每个用户4个字段分组生成实例
let personList = [];
for (let i = 0; i < allFields.length; i += 4) {
  let userFields = allFields.slice(i, i + 4);
  personList.push(new Person(...userFields));
}

console.log(personList);
输出效果

最终会得到包含3个Person实例的数组,对应3位用户的信息,空字段会按规则保留默认值。

内容的提问来源于stack exchange,提问作者gnorbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:39:03