Zhi*_*har 0 javascript arrays string type-conversion
告诉我,我怎样才能最佳地转换字符串
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407";
Run Code Online (Sandbox Code Playgroud)
像一个数组
const range = [
{
min: 1350,
max: 1350,
},
{
min: 1351,
max: 1351,
},
{
min: 1390,
max: 1391,
},
{
min: 1401,
max: 1401,
},
{
min: 1402,
max: 1407,
},
];
Run Code Online (Sandbox Code Playgroud)
?
换句话说,您需要使用字符串创建数字范围数组,其中显式指定了这些数字范围.
最明显的可能算法是:
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);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)