【发布时间】:2016-09-17 07:12:24
【问题描述】:
如何使用一些特殊算法将数组拆分成块?例如。我需要将数组缩短到 10 个元素的大小。如果我有 11 个元素的数组,我希望合并两个下一个常设元素。如果我有 13 个元素的数组,我希望合并三个元素。等等。有什么解决办法吗?
Sample #1
var test = ['1','2','3','4','5','6','7','8','9','10','11'];
Need result = [['1'],['2'],['3'],['4'],['5|6'],['7'],['8'],['9'],['10'],['11']]
Sample #2
var test = ['1','2','3','4','5','6','7','8','9','10','11','12','13'];
Need result = [['1|2'],['3'],['4'],['5'],['6'],['7|8'],['9'],['10'],['11'],['12|13']]
提前谢谢你。
【问题讨论】:
-
首先 - 表现出一些努力。第二 - 你如何检测合并了哪些元素?
-
@Mikelis Baltruks 我不需要检测。将随机元素与下一个常设元素合并以缩短数组就足够了
-
但是为什么在第一个示例中合并在中间,但在第一个示例中它在两端?你想要吗?
-
无论如何 - 如果您不亲自尝试,您将不会从任何人那里获得任何代码。基本思想是,您循环遍历数组并将元素放入 2d 数组中,每个元素形成一个新的 (1d) 数组。并合并 - 只需获得差异(需要 11 个,你有 15 个元素。diff = 4)并取那么多第一对并合并。休息就正常了
-
是的,在第一个样本中,随机密钥为 4,它与 5 合并。在第二个元素中,随机密钥为 0(与 1 合并),下一个随机密钥为 6(与密钥 7 合并)和最后一个随机密钥是 12(与密钥 13 合并)。我只想缩短数组。