Javascript 如何将函数参数转换为数组?

Javascript 如何将函数参数转换为数组?,javascript,arrays,Javascript,Arrays,我的函数是接收2个整数参数并返回这两个参数之间的数字。我无法将显示的数字转换为数组 正如我所设想的buildArray函数,它接受两个数字,并返回一个填充了给定数字之间所有数字的数组:buildArray5,10应该返回[5,6,7,8,9,10] 我曾尝试使用split将值转换为数组,但多次失败 我的代码分别打印每个值,而我需要在数组中显示这些值 函数a,b{ 对于var i=0;i您可以构造一个新数组,其中填充所需长度的零,然后使用map来设置值。我已更新为通用版本,用于接受其他类型的范围

我的函数是接收2个整数参数并返回这两个参数之间的数字。我无法将显示的数字转换为数组

正如我所设想的buildArray函数,它接受两个数字,并返回一个填充了给定数字之间所有数字的数组:buildArray5,10应该返回[5,6,7,8,9,10]

我曾尝试使用split将值转换为数组,但多次失败

我的代码分别打印每个值,而我需要在数组中显示这些值

函数a,b{
对于var i=0;i您可以构造一个新数组,其中填充所需长度的零,然后使用map来设置值。我已更新为通用版本,用于接受其他类型的范围

函数a,b { 设n=Math.absb-a; 返回Arrayn+1.fill0.mapx,idx=>a+b>=a?idx:-idx; } console.logJSON.stringifybuildArray5,10; console.logJSON.stringifybuildArray12,3; console.logJSON.stringifybuildArray1,-2; console.logJSON.stringifybuildArray-1,-1;使用以下命令尝试以下操作:

函数buildArraymin,max{ 返回数组。从{length:max-min+1},3;,i=>min+i; }
console.logbuildArray5,10;以下是使用您最初思路的最简单版本

实现一个范围函数可能比这更复杂,但由于这是可行的,我现在建议这样做

函数a,b{ var-arr=[];
对于var i=a,我很困惑。这是您想要的吗?函数buildArraya,b{var arr=[];对于var i=a;i@mplungjan,你应该把它作为一个答案。@GiovanniDiToro好的。完成:今天这里的答案很奇怪。我认为没有原因吗?他可以修复循环的迭代器,这只是一个替代解决方案。可爱的解决方案。对于刚开始编程并进入for循环的人来说,这是不可理解的,而不是实用的一点也不复杂。非常简单的东西非常复杂。运行你的10万个项目,并与我的建议进行比较哇。变得越来越复杂:填充和数学。abs和ternaries,噢,天哪!哈哈,我真的知道你的观点@mplungjan,但也许这对将来的人有用:。我不认为这个解决方案设计过度所有。它的可读性非常好,涵盖了b比a低的情况。@mplungjan使用Array.from比for循环更自然。事实上,在MDN页面上建议它可以用于实现范围。当然。但这是一个全新的程序员。很荣幸能展示语言的闪亮新功能,但如果没有掌握for循环,那么Array.from是一种外来语言。只要看看你的代码,就好像你从来没有做过任何JS一样before@mplungjan我不认为函数概念必然比命令式循环更难。例如,你不需要理解迭代是如何工作的来猜测[1,2,3].mapele=>ele*ele确实如此。这个答案基本上就是这样做的:创建一个max-min+1长度的数组,并将每个元素映射到min+i,i是元素的索引。但这不仅仅是您要做的。您使用的是arrow函数,一个array.from构造函数和一个具有长度成员的神秘对象,并向其传递一个map函数我也是。我从95年开始编写JS,不得不认真考虑你做了什么,因为我还没有使用数组。我自己。我必须在MDN上查找它。你有我的支持,+1!这对他来说就足够了。这个答案不包括b低于a的情况。我知道OP没有特别提到这个情况,但它可能已经用于ul让他知道。@Shidersz answer涵盖了这种情况。如果您需要这样的函数,您可以创建它或对结果进行排序。例如String.substring不能从结尾以相反的顺序返回字符。建议函数与这种内置方法一样简单