找到10230个回复
@老虎会游泳,元素个数11,份数5,我也没说份数是会变的,因此我只需要(合理)均分,很显然2楼的情况并无法实现,并且对其他数量的元素,尽可能(合理)均分,我说实话,看到这一堆回复,我差点以为是个假老虎,问个问题而已,你是受到什么刺激了
我uid100000096
@老虎会游泳,其实很简单,就是想均分,11个元素,分5份,一份至少2个,但是代码实现出来不行,如果改了除法取整,元素数量不一样又可能出现别的不均匀的情况
@echo醉老仙,你首先需要描述你的目标,输入是什么,想得到的输出是什么,然后别人才能回答。
展示效果不佳的代码并不能让人推测出你的目标。
希望的结果是:11个,足够分5份
结果是这样
您的代码中使用
splice()
函数来删减数组,但是如果数组元素个数不足时,splice()
函数的行为会发生变化,导致错误的结果。另外,删减后的数组也不一定是均分的。以下是一个根据数组长度均分数组的代码示例:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; var partCount = 5; // 将数组分为5部分 var partSize = Math.ceil(arr.length / partCount); // 每部分个数 var result = []; // 存储结果的数组 for (var i = 0; i partCount; i++) { result.push(arr.slice(i * partSize, (i + 1) * partSize)); // 将分组结果添加到结果数组中 } console.log(result); // 输出结果
这个代码会将数组按照均等的部分分割,即使原数组元素个数不能被部分数整除也不会出现错误的结果。您可以根据需要调整
partCount
来分割为不同的部分数。
白日梦还是要做的blog.wz52.cn