Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript n个数组中的分区数_Javascript_Math - Fatal编程技术网

Javascript n个数组中的分区数

Javascript n个数组中的分区数,javascript,math,Javascript,Math,假设我们有一个数字数组: var numbers=[10,25,640,9800,51000,54234,53433,543,1000]; 我想根据这些数字在n个区域(数组)中的值来分割它们。最大n为5 示例: Result for 5-area would be: [10,25],[543,640],[1000],[9800],[51000,54234,53433] Result for 4-area in this case would be: [10,25],[543,640,1000]

假设我们有一个数字数组:

var numbers=[10,25,640,9800,51000,54234,53433,543,1000];
我想根据这些数字在n个区域(数组)中的值来分割它们。最大n为5

示例:

Result for 5-area would be: [10,25],[543,640],[1000],[9800],[51000,54234,53433]
Result for 4-area in this case would be: [10,25],[543,640,1000],[9800],[51000,54234,53433]
*编辑:

如果我们的值为900而不是640,则5-面积的结果为:

[10,25]、[543]、[9001000]、[9800]、[510005423453433]

因为900接近1000。在前面的示例中,640更接近543

--

我该怎么做


请帮帮我。

从“n-区域”的问题和描述中,不清楚该算法需要什么

但是,对于数字排序,您应该查看数组排序方法

如果结果为负数,sort函数将第一个值排序为较低的值,并将其向下移动到数组中。例如,10是集合中最低的,因此它将移动到索引0。然而,在排序之后,在上面数组中的数字640之后,它将不是9800,而是1000,之后是9800。像这样

[10,255436401000980051000534354234]

与原始数组相反

[10,2564098005105423453435431000]

我在下面包含了一个jsbin来说明Array.sort是如何工作的


谢谢您抽出时间。你能看看我更新的帖子,试着理解算法吗?这更多的是数学问题,而不是编程:)。嗯,在创建一个具有设置数量的值的内部数组之前,我们究竟应该比较多少个值还不清楚。但是,如果要遍历元素并比较值,我建议遍历元素并比较下一个值和上一个值(第一次迭代中除外,例如,当I=0时,由于没有上一个值,因此只比较下一个值)。同样,对于最后一个项目,您只需将其与前一个元素进行比较,因为在最后一个项目之后没有“下一个元素”。谢谢您的想法。我们需要比较数组中的所有值。是的,你可能知道算法以及5区和4区之间的关系。为了给你一个想法,我写了一个for循环,希望能给你一些关于如何开始计算的想法,如果你不想要分区[10,255436401000],[9800],[51000],[53433],[54234],你还需要将函数“closer”定义为与大小相关的东西。