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
相关产品推荐
相关产品推荐

