李伊娜 JavaScript 这样的方法 "range//", 在提供的边界范围内生成范围?
在 PHP 年你可以做到...
也就是说,有一个函数允许您获得数字或符号范围,传输上限和下边界。
有什么内置的 JavaScript 最初为此? 如果没有,我将如何实施它?
range/1, 3/; // Array/1, 2, 3/
range/"A", "C"/; // Array/"A", "B", "C"/
也就是说,有一个函数允许您获得数字或符号范围,传输上限和下边界。
有什么内置的 JavaScript 最初为此? 如果没有,我将如何实施它?
没有找到相关结果
已邀请:
25 个回复
二哥
赞同来自:
迭代性质
迭代
作为职能
作为键入的功能
lodash.js
https://lodash.com/docs/4.16.4#range
功能
老废话 es6 没有图书馆的浏览器:
console.log/[...Array/5/.keys//]/;
谢。
/ES6 信用尼罗河彼得森和其他评论
/
</string></number>
裸奔
赞同来自:
,
https://developer.mozilla.org/ ... ility
, 除了 IE:
删节版:
长版本:
从中创建一个数组 0 到 19 包括的。 这可以进一步减少到以下形式之一:
您还可以指定较低和上限,例如:
这些文章更详细地描述了这一点:
http://www.2ality.com/2014/05/ ... .html
涵秋
赞同来自:
ES2015
/
如果您需要参数的函数
:
小姐请别说爱
赞同来自:
二哥
赞同来自:
http://jsfiddle.net/ZaZAZ/
.
如果要增加自己的类型,请分配它
.
冰洋
赞同来自:
莫问
赞同来自:
小姐请别说爱
赞同来自:
在 JavaScript 我们没有功能
, 作为
PHP
, 因此,我们需要创建一个是一个相当简单的函数,我为您编写了一对单行功能并将它们分开
数字
和
字母表
, 如下所示:
对于数字 :
让我们这样称呼它:
numberRange/5, 10/; //[5, 6, 7, 8, 9]
为了
字母表
:
让我们这样称呼它:
alphabetRange/'c', 'h'/; //["c", "d", "e", "f", "g"]
奔跑吧少年
赞同来自:
函数制作诀窍,在下面运行代码片段
以下是如何使用它
范围 /开始,结束,步骤= 1,offset = 0
/;
包容性
range/5,10/ // [5, 6, 7, 8, 9, 10]
包容性
range/10,5/ // [10, 9, 8, 7, 6, 5]
退后
range/10,2,2/ // [10, 8, 6, 4, 2]
独家未来
range/5,10,0,-1/ // [6, 7, 8, 9] not 5,10 themselves
膨胀 - 扩展
range/5,10,0,1/ // [4, 5, 6, 7, 8, 9, 10, 11]
偏见 - Shochesale.
range/5,10,0,-2/ // [7, 8]
逐步扩展
range/10,0,2,2/ // [12, 10, 8, 6, 4, 2, 0, -2]
希望对你有帮助。
这就是它的工作原理。
基本上,我首先计算生成的阵列的长度,并为此长度创建零填充的阵列,然后用必要的值填充它
=> 和其他类似的手段使用该值
, 如果没有授予,则使用
我们首先计算使用的阵列的长度
, 简化它 /difference* 两者都偏移 direction/step/
接收到长度后,我们使用初始化值创建一个空数组
现在我们有一个数组
[0,0,0,..]
到长度的长度。 我们将其进行比较并将新数组与我们需要的值返回
显然,如果
不小于
, 我们需要搬回。 我的意思是过渡到 0 到 5 或相反亦然
在每次迭代时
+
*
将为我们提供我们需要的价值
涵秋
赞同来自:
石油百科
赞同来自:
/:
或者,如果我们只需要一项研究,那么:
郭文康
赞同来自:
https://developer.mozilla.org/ ... rator
和射击功能:
var range = /start, end/ => [...Array/end - start + 1/].map//_, i/ => start + i/;
例子:
君笑尘
赞同来自:
http://jsperf.com/javascript-range-tests
执行这些功能的不同方式。 当然,不是理想或详尽的名单,但应该有所帮助 :/
获胜者是。
..
从技术上讲,他不是最快的 firefox, 但巨大的速度差异 /imho/ 在 chrome 补偿它。
观察多司令也很有意思 chrome 与数组的这些功能合作 firefox.
至少在铬 4 或者 5 一旦速度迅速
.
龙天
赞同来自:
https://lodash.com/docs#range
或者
http://underscorejs.org/#range
:
此外,如果您只需要一个一致的整数范围,您可以执行以下操作:
在 ES6
可以实施
https://developer.mozilla.org/ ... yield
:
此实现将内存保存在大序列的迭代中,因为它不需要将所有值归化为数组:
君笑尘
赞同来自:
如果要仔细检查,那么最终资源
http://www.ecma-international. ... 2.htm
ECMA-262 .
涵秋
赞同来自:
其中40岁 /结尾 - 开始/ , 10是开始。 这应该回来
[10, 11, ..., 50
]
小姐请别说爱
赞同来自:
短的
函数。 递归来到救援!
通常,它在大范围内慢慢地工作,但幸运的是,量子计算机不远。
额外的奖金是它混淆了。 因为我们都知道隐藏窥探眼睛的代码是多么重要。
为了真正混淆这个功能,做到这一点:
</b?[a,b].concat>
詹大官人
赞同来自:
他的行为与范围类似 Python:
八刀丁二
赞同来自:
https://developer.mozilla.org/ ... /from
:
三叔
赞同来自:
: s iteratrami. ES6
你只能问上下边界。
在这里,我们也有一个步骤。
您可以轻松创建生成功能。
, 它可以用作迭代器。 这意味着您不需要预先生成整个数组。
现在,您可以创建从迭代器中预先生成数组并返回列表的内容。 这对于占用阵列的函数非常有用。 为此,我们可以使用
现在,您可以轻松生成静态数组,
但是什么时候愿意迭代器 /或者让您有机会使用迭代器/, 你也可以轻松创建它。
特别注意
如果您正在使用
https://ramdajs.com/docs/#range
就像我一样。
https://lodash.com/docs/4.17.11#range
董宝中
赞同来自:
PHP
, 模仿
经过
Python
.
小姐请别说爱
赞同来自:
显然,它不适用于字母阵列。
卫东
赞同来自:
http://wiki.ecmascript.org/dok ... ators
,
http://kangax.github.io/es5-compat-table/es6/
:
样本
拿
例子 1.
只需要尽可能多地获得
回报
[100, 105, 110, 115, 120]
例子 2.
没必要
回报
[100, 105, 110, 115, 120, 125, 130, 135, 140, 145]
takeAll
例子 3.
没必要
回报
[0, 1, 2, 3, 4, 5]
例子 4.
回报
[0, 100, 200, 300, 400, 500]
例子 5.
回报
["z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j", "i", "h", "g", "f", "e", "d", "c", "b", "a"]
詹大官人
赞同来自:
使用发电机功能的更多范围。
我希望它有用。
郭文康
赞同来自:
包括的:
/s,f/=>[...Array/f-s+1/].map//e,i/=>i+s/
客房包容:
/s,f/=>[...Array/f-s/].map//e,i/=>i+s/