Javascript:分组数组元素

时间:2018-02-14 11:13:57

标签: javascript

如何翻转重复的数字,例如:

999117777774422111

创建输出://

 999, 11, 777777, 44, 22, 111

我基本上想要在数字从第i个位置变化时分离值。

3 个答案:

答案 0 :(得分:3)

您可以使用正则表达式:/(\d)\1*/g(\d)表示匹配任何数字,\1*表示匹配和最初匹配的数字。

// Example:
'999117777774422111'.match(/([0-9])\1*/g)

 // Output:
 // ["999", "11", "777777", "44", "22", "111"]
    
 console.log('999117777774422111'.match(/([0-9])\1*/g));

答案 1 :(得分:1)

这不是真正的排序,而是更像是比较。

以下是解决方案

var str = "999117777774422111";
var out = str[0];

for (var i = 1; i < str.length; i++) {
  if (str[i] == str[i-1]) {
    out += str[i];
  } else {
    out += ", " + str[i];
  }
}

console.log(out);

或将输出作为数组发送:

var str = "999117777774422111";
var out = [str[0]];

var j = 0;

for (var i = 1; i < str.length; i++) {
  if (str[i] != str[i-1]) {
    j++;
    out[j] = "";
  }
  
  out[j] += str[i];
}

console.log(out);

答案 2 :(得分:0)

试试这个:

&#13;
&#13;
let num='999117777774422111';
let result=num.match(/(\d)\1*/g);
console.log(result);
&#13;
&#13;
&#13;