当前位置: 首页 > 面试题库 >

JavaScript函数类似于Python range()

封烈
2023-03-14
问题内容

JavaScript中是否有类似于Python的函数range()

我认为应该有比每次编写以下几行更好的方法:

array = new Array();
for (i = 0; i < specified_len; i++) {
    array[i] = i;
}

问题答案:

,没有,但 您可以制造一个

JavaScript的Python实现 range()

尝试 模拟它在Python中的工作方式 ,我将创建类似于以下的函数:

function range(start, stop, step) {
    if (typeof stop == 'undefined') {
        // one param defined
        stop = start;
        start = 0;
    }

    if (typeof step == 'undefined') {
        step = 1;
    }

    if ((step > 0 && start >= stop) || (step < 0 && start <= stop)) {
        return [];
    }

    var result = [];
    for (var i = start; step > 0 ? i < stop : i > stop; i += step) {
        result.push(i);
    }

    return result;
};

请参阅此jsfiddle以获取证明。

range()JavaScript和Python之间的比较

它的工作方式如下:

  • range(4)返回[0, 1, 2, 3]
  • range(3,6)返回[3, 4, 5]
  • range(0,10,2)返回[0, 2, 4, 6, 8]
  • range(10,0,-1)返回[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
  • range(8,2,-2)返回[8, 6, 4]
  • range(8,2)返回[]
  • range(8,2,2)返回[]
  • range(1,5,-1)返回[]
  • range(1,5,-2)返回[]

及其Python对应物的 工作方式完全相同 (至少在上述情况下):

>>> range(4)
[0, 1, 2, 3]
>>> range(3,6)
[3, 4, 5]
>>> range(0,10,2)
[0, 2, 4, 6, 8]
>>> range(10,0,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(8,2,-2)
[8, 6, 4]
>>> range(8,2)
[]
>>> range(8,2,2)
[]
>>> range(1,5,-1)
[]
>>> range(1,5,-2)
[]

因此,如果您需要一个功能类似于Python的功能range(),则可以使用上述解决方案。



 类似资料:
  • 问题内容: 是否有像纯JavaScript 一样的功能? 我知道jQuery具有此功能来检查整数。 问题答案: 没有功能类型,但您可以添加自己的功能: 注意:由于不是检查数字的正确方法,因此不应使用它。

  • 问题内容: 这是在本地处理程序的上下文中。我想运行一个外部程序来获取一些数据。我可以使用popen()或等效函数吗? 问题答案: 然后,您可以使用流读取和写入数据。

  • 问题内容: 我正在寻找一个能够与TSQL的MySQL REGEX函数做相同事情的函数。基本上,我需要我的查询看起来像以下内容: 我目前不希望使用CLR。 有任何想法吗? 问题答案: 此链接是有关通过服务器上的VBScript.Regex库编写正则表达式的文章:http : //www.sqlteam.com/article/regular-expressions-in-t- sql 它通过OLE自

  • 本文向大家介绍浅谈Mysql中类似于nvl()函数的ifnull()函数,包括了浅谈Mysql中类似于nvl()函数的ifnull()函数的使用技巧和注意事项,需要的朋友参考一下 IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 如果expr1是TRUE(e

  • 问题内容: 是否有一种简单的方法可以用JavaScript格式化数字,类似于通过或通过C#(或VB.NET)提供的格式化方法? 问题答案: 您可能应该看看JQuery NUMBERFORMATTER插件: Query Number Formatter 这个问题: Javascript格式化数字的简便方法

  • 我的代码是从参数:title中选择文本。但我得到的结果是不对的。在我的例子中,类书扩展了媒体。 这是我的疑问。 我的参数是“哈里”。我想只得到一个结果,但我得到了我所有的数据。我的代码有什么错误?请帮忙。