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

React中使用map将指定格式字符串转换为对象数组

解决方案

直接通过分割字符串+map遍历组装对象就能实现你要的结构,关键是在map回调里把拆分后的两部分合并到同一个对象中,同时处理空格和类型转换:

完整实现代码

// 原始输入字符串
const inputStr = 'first string-100, second string-300, third string-500';

// 转换为目标结构数组
const targetArray = inputStr.split(', ')
  .map(item => {
    // 按'-'拆分每个元素,同时去除前后多余空格
    const [keyText, numText] = item.split('-').map(part => part.trim());
    return {
      key: keyText,
      integer: Number(numText) // 转成数字类型,避免得到字符串数字
    };
  });

console.log(targetArray);
// 输出:[{"key": "first string", "integer": 100}, {"key": "second string", "integer": 300}, {"key": "third string", "integer": 500}]

如果你已经有了分割好的array变量

直接对现有数组做map处理即可:

const array = ['first string-100', 'second string-300', 'third string-500'];

const targetArray = array.map(item => {
  const [key, numStr] = item.split('-');
  return {
    key: key.trim(),
    integer: parseInt(numStr, 10) // 用parseInt更稳妥,指定基数10避免进制歧义
  };
});

额外注意事项

  • 如果原始字符串的分隔符是逗号加任意空格(比如多个空格),可以用正则分割:inputStr.split(/,\s+/)
  • trim()用来处理-前后可能存在的空格(比如first string - 100这种格式)
  • 用Number()或parseInt()确保数字部分是数值类型,而不是字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:45:41