javascript - 如何使用带前导 0 的 underscore.js 生成一系列数字?

标签 javascript underscore.js

我一直在尝试为用户选择小时、分钟的下拉菜单生成值。

为了获得分钟的可能值,我使用了这个:

_.range(1, 61)

这会生成一个类似

的数组
[1, 2, 3 ... 60] 

但我要求它是有形式的

[01, 02, 03 ... 60] 

有没有一种使用下划线的简洁方法?

最佳答案

在 FF 中,很快在其他浏览器中,使用 padStart :

_.range(1, 61) . map(num => String(num).padStart(2, '0'))

另一种方法是

_.range(1, 61) . map(num => ('0' + num).slice(-2));

这会在所有数字的开头添加一个零,但随后只取结果的最后两个字符。

函数式方法是编写一个高阶函数,它获取长度并返回一个将其输入填充到该长度的函数:

function make_padder(len) {
  return str => ('0000000000000' + str).slice(-len);
}

现在你可以写了

_.range(1,61) . map(make_padder(2))

关于javascript - 如何使用带前导 0 的 underscore.js 生成一系列数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37019973/

相关文章:

javascript - KnockoutJS arrayFilter 不更新

Javascript::文本区域中的新行

javascript - 下划线Js : flatten array of objects

javascript - 下划线用换行符替换新行字符

javascript - 如何使用 lodash 获取对象的前 n 个元素?

javascript - 如何在javascript中返回一个始终大于前一个数字的随机数

javascript - JSON 到 Tabulator 表 - Javascript

javascript - react 错误 : react/jsx-no-undef by react-bootstrap

javascript - 如何从 JSON 对象中删除内部属性

javascript - 识别数组中具有与另一个对象数组中的属性不同的属性的对象的最快方法