定制解构模式

时间:2017-07-21 12:49:10

标签: javascript ecmascript-6

我有一个由格式'hhmmss'字符串表示的时间值,并希望为每小时,分钟和秒分配一个变量。

我试图找到一个解决方案,我可以做一些整洁的事情,比如

let [h, m, s] = '083000';

目前,我的工作解决方案有点冗长:

const str = '083000';
let [h, m, s] = [str.slice(0, 2), str.slice(2, 4), str.slice(4, 6)];

有没有办法更接近第一个片段?

2 个答案:

答案 0 :(得分:7)

您可以使用正则表达式将字符串“分块”为两个字符串的数组:

const str = '083000';
let [h, m, s] = str.match(/../g);

答案 1 :(得分:1)

根据输入格式的保证程度以及您希望自己记录代码的方式,我个人认为这是最具可读性的方法:

const str = '083000'
const [, h, m, s] = str.match(/^([0-9]{2})([0-9]{2})([0-9]{2})$/);

这清楚表明你正在抓取三组2位数字。