我需要遍历数字的数字,直到该数字有差异,然后输出数字长度:
例如:
0000123
所以输出应为3.
(消除0000
并输出123
)
我该如何解决?
答案 0 :(得分:6)
尝试在字符串上循环,直到找到差异:
var num="001234",i,max=num.length,output;
for(i=1;i<max;i+=1){
if(num[i]!== num[i-1]){
output = num.substring(i,max);
break;
}
}
alert(output);
&#13;
答案 1 :(得分:2)
您可以使用filter等ES5功能:
var n = '11112213133';
var test = true;
console.log(String(n).split('').filter(function(v,i,a) {
test = test? v == a[0] : test;
return !test;
}).join('')); // 2213133
您也可以使用简单的字符串方法(可能非常快):
var n = '11112213133';
var i = 0, c = n.charAt(0);
while (c == n.charAt(++i)) {}
console.log(n.substr(i)); // 2213133
虽然这些数字会修改第一个数字是否重复。