告诉我,如何以最佳方式转换字符串
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407";
像这样的数组
const range = [
{
min: 1350,
max: 1350,
},
{
min: 1351,
max: 1351,
},
{
min: 1390,
max: 1391,
},
{
min: 1401,
max: 1401,
},
{
min: 1402,
max: 1407,
},
];
?
换句话说,您需要使用明确指定这些数字范围的字符串创建一个数字范围数组。
最明显的可能算法是:
1) 使用分隔符,
分割字符串
2) 使用命令 trim
清除生成的部分中的空格
3)检查该部分是否为数字
4) 如果不是,则使用分隔符 -
5) 使用命令 trim
将获得的零件清除空格,
6) 检查分量 eq 2 的数量并且它是一个数字
但是有可能让它更优化、更美观、更有效吗?
最佳答案
您可以使用.split()
和.map()
:
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407";
const range = data.split(",").map(s => {
let [min, max = min] = s.split("-");
return {min: Number(min), max: Number(max)}
});
console.log(range);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于Javascript:将字符串转换为对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852177/