我有一个数组:
var myarray = [1,2,3,4,7,9,12,13,14]
我需要像这样对值进行分组:
var array_1 = 1,2,3,4
var array_2 = 7
var array_3 = 8
var array_4 = 12,13,14
我需要找到一个具有等差级数并与其他值分开的序列。 有什么想法吗?
最佳答案
查看此解决方案
function explode(myarray)
{
var multi = [];
var i = j = 0;
for ( key in myarray )
{
if((myarray[key-1]) != (myarray[key]-1))
{
i++;
j=0;
}
if(j==0)
multi[i] = [];
multi[i][j] = myarray[key];
j++;
}
return multi;
}
它返回一个多维数组,您可以像这样在示例中使用它
var myarray = [1,2,3,4,7,9,12,13,14];
var multi_array = explode(myarray);
var array_1 = multi_array[0];
var array_2 = multi_array[1];
var array_3 = multi_array[2];
var array_4 = multi_array[3];
新更新:
您还可以删除 j
索引并使用 .push
将新元素添加到您的数组
function explode(myarray)
{
var multi = [];
var i = 0;
for ( key in myarray )
{
if((myarray[key-1]) != (myarray[key]-1))
i++;
if(!multi[i])
multi[i] = [];
multi[i].push(myarray[key]);
}
return multi;
}
关于javascript - 找出数组是否包含javascript中的算术级数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936361/