几乎是标题;我正在寻找一种方法来取一个数字(例如78)并将其除以不超过另一个数字的相等部分的最小数量(例如25)。部件的数量并不重要,它应该尽可能小 - 这意味着得到的数字应该尽可能大。
对于某些上下文,我想要这样做的原因是使用偶数文本拆分。我正在使用的消息服务只允许每封邮件25行,因此我将文本拆分为多条消息,但我不希望只有一行或两行消息。为此,我希望每,
行分割文本,其中n
尽可能接近25,并尽可能创建尽可能分割的消息。但是,产生的消息数量根本不重要,所以它不是一个问题。
答案 0 :(得分:1)
在一些盲目的笨手笨脚之后,我设法解决了这个问题。
out = [list]
if(list.split("\n").length > 25) {
n = list.split("\n").length
x = Math.floor(n / 25)
y = n / x
while(y > 25) {
x += 1
y = n / x
}
out = []
while(list) {
l25 = list.split(/\r?\n/, Math.ceil(y)).join("\n")
list = list.slice(l25.length)
out.push(l25)
}
}
// Send each value in out as a separate message
其中list
是要拆分的字符串,out
是生成的字符串数组。