ฉันมีสตริงที่มีตัวอักษรซ้ำกัน ฉันต้องการให้ตัวอักษรที่ซ้ำกันมากกว่าหนึ่งครั้งเพื่อให้แสดงเพียงครั้งเดียว ตัวอย่างเช่น ฉันมีสตริง 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")
- person Neil   schedule 14.12.2012unique_char('abracadabra')
ควรเป็นอย่างไร? - person Neil   schedule 14.12.2012