首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript:将字符串转换为对象数组?

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

Stack Overflow用户
提问于 2018-04-16 07:55:14
回答 5查看 162关注 0票数 0

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

代码语言:javascript
运行
复制
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407";

的数组,如

代码语言:javascript
运行
复制
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的数量,它是一个数字

但是,它是否有可能使它更理想,更美丽,更有效?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-04-16 07:59:37

您可以使用.split().map()

代码语言:javascript
运行
复制
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);
代码语言:javascript
运行
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 5
EN

Stack Overflow用户

发布于 2018-04-16 07:59:16

试着做这样的事情:

代码语言:javascript
运行
复制
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407"

const result = data
  .split(/\s*,\s*/)
  .map(pair => {
    const [min, max = min] = pair
      .split(/\s*-\s*/)
      .map(Number)

    return {
      min,
      max
    }
  })

console.log(result)

票数 2
EN

Stack Overflow用户

发布于 2018-04-16 07:59:44

您可以结合使用split方法和reduce方法。

减()方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其还原为单个值。

另外,使用+操作符,以便结果强制到Number

代码语言:javascript
运行
复制
const data = "1350, 1351, 1390-1391, 1401, 1402 - 1407";
const array = data.split(', ').reduce(function(arr, elem){
   var [min, max] = elem.split('-');
   arr.push({
      min : + min,
      max: + (max || min)
   });
   return arr;
},[]);
console.log(array);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49852177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档