Javascript:将字符串转换为对象数组?

标签 javascript arrays string type-conversion

告诉我,如何以最佳方式转换字符串

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/

相关文章:

javascript - 使用 .push() 将数据从 JSON 添加到数组时出现未定义的值

JavaScript - 延迟一组 setTimeout 事件

java - 如何将元素复制到没有大写字符的第二个数组?

c++ - 如何将数据插入 map<string, set<string>> C++?

Java正则表达式从给定字符串中提取单词

javascript - JavaScript 中的 ({}) 和 {} 有区别吗?

javascript - 如何将 Ionic 输入类型文件设置为 Button

php - 多维 PHP 数组转换为 HTML 表格

C 参数字符数组

string - 替换字符串列表中的特殊字符和空格