Hab*_*lah 5 javascript arrays sorting
我不确定这个问题的标题是否正确,也不确定在谷歌搜索哪个合适的关键字.
我有一个数组看起来像:
var myArray = [1,1,2,2,2,3,4,4,4];
我想将我的数组排序为:
var myArray = [1,2,3,4,1,2,4,2,4];
请进入我的预期结果.顺序是升序但重复值将在最后一个序列上重复,而不是将它们放在相邻的键中.因此,预期结果分组为1,2,3,4 1,2,4和2,4.
谢谢你的帮助,抱歉我的英语不好.
这段代码有效。但可能存在更好的解决方案。
// We assume myArray is already sorted
var myArray = [1,1,2,2,2,3,4,4,4],
    result = [];
while (myArray.length) {
   var value = myArray.shift();
   // Find place
   var index = 0;
   while(result[index] && result[index][result[index].length - 1] == value) index++;
   if(!result[index]) {
      result[index] = [];
   }  
   result[index][result[index].length] = value;
}
result.reduce(function(current, sum) {
  return current.concat(sum);
});
console.log(result) // Display [1, 2, 3, 4, 1, 2, 4, 2, 4]