【发布时间】:2012-12-01 19:50:27
【问题描述】:
我有一个包含重复字母的字符串。我希望多次重复的字母只显示一次。例如我有一个字符串aaabbbccc 我希望结果是abc。到目前为止,我的功能是这样的:
- 如果字母不重复,则不显示
- 如果重复一次,则只显示一次(即 aa 显示 a)
- 如果重复两次,则显示全部(即 aaa 显示 aaa)
- 如果重复 3 次,则显示 6(如果 aaaa,则显示 aaaaaa)
function unique_char(string) {
var unique = '';
var count = 0;
for (var i = 0; i < string.length; i++) {
for (var j = i+1; j < string.length; j++) {
if (string[i] == string[j]) {
count++;
unique += string[i];
}
}
}
return unique;
}
document.write(unique_char('aaabbbccc'));
函数必须在循环内有循环;这就是为什么第二个for 在第一个里面。
【问题讨论】:
-
在正则表达式中你可以写
'aaabbbccc'.replace(/(.)\1+/g, "$1") -
unique_char('abracadabra')的结果应该是什么? -
结果应该是 abrcd
-
@ZlatkoSoleniq:那是怎么回事?与您的描述不符。顺便说一句,这个(或者是作业)的用例是什么?
标签: javascript string character unique