开发者社区> 问答> 正文

JavaScript是否具有类似“ range()”的方法来在提供的范围内生成范围?

在PHP中,您可以...

range(1, 3); // Array(1, 2, 3) range("A", "C"); // Array("A", "B", "C")

也就是说,有一个函数可以让您通过传递上下限来获得一定范围的数字或字符。

为此,JavaScript是否内置任何内置功能?如果没有,我将如何实施?

展开
收起
保持可爱mmm 2020-01-13 17:25:18 1412 0
1 条回答
写回答
取消 提交回答
  • 号码

    [...Array(5).keys()]; => [0, 1, 2, 3, 4]

    角色迭代

    String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); => "ABCD"

    迭代

    for (const x of Array(5).keys()) { console.log(x, String.fromCharCode('A'.charCodeAt(0) + x)); } => 0,"A" 1,"B" 2,"C" 3,"D" 4,"E"

    作为功​​能

    function range(size, startAt = 0) { return [...Array(size).keys()].map(i => i + startAt); }

    function characterRange(startChar, endChar) { return String.fromCharCode(...range(endChar.charCodeAt(0) - startChar.charCodeAt(0), startChar.charCodeAt(0))) }

    作为键入函数

    function range(size:number, startAt:number = 0):ReadonlyArray { return [...Array(size).keys()].map(i => i + startAt); }

    function characterRange(startChar:string, endChar:string):ReadonlyArray { return String.fromCharCode(...range(endChar.charCodeAt(0) - startChar.charCodeAt(0), startChar.charCodeAt(0))) }

    lodash.js _.range()函数

    _.range(10); => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] _.range(1, 11); => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] _.range(0, 30, 5); => [0, 5, 10, 15, 20, 25] .range(0, -10, -1); => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] String.fromCharCode(....range('A'.charCodeAt(0), 'D'.charCodeAt(0) + 1)); => "ABCD"

    没有库的旧的非es6浏览器:

    Array.apply(null, Array(5)).map(function (_, i) {return i;}); => [0, 1, 2, 3, 4]

    console.log([...Array(5).keys()]);

    问题来源于stack overflow

    2020-01-13 17:25:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载