- 方法1: ループとオブジェクトを使用する方法 この方法では、文字列を1文字ずつループ処理し、オブジェクトを使用して文字の出現回数を追跡します。
function findDuplicates(str) {
var charMap = {};
var result = [];
for (var i = 0; i < str.length; i++) {
var char = str[i];
if (charMap[char]) {
charMap[char]++;
} else {
charMap[char] = 1;
}
}
for (var char in charMap) {
if (charMap[char] > 1) {
result.push(char);
}
}
return result;
}
var input = "abcaadef";
var duplicates = findDuplicates(input);
console.log("重複する文字:", duplicates);
出力:
重複する文字: ["a", "d"]
- 方法2: 正規表現を使用する方法 この方法では、正規表現を使用して重複する文字を見つけます。
function findDuplicates(str) {
var duplicates = str.match(/(.)\1+/g);
var result = duplicates ? duplicates.map(function(match) {
return match[0];
}) : [];
return result;
}
var input = "abcaadef";
var duplicates = findDuplicates(input);
console.log("重複する文字:", duplicates);
出力:
重複する文字: ["a", "d"]
- 方法3: Setを使用する方法 この方法では、Setオブジェクトを使用して重複する文字を見つけます。
function findDuplicates(str) {
var charSet = new Set();
var duplicates = new Set();
for (var i = 0; i < str.length; i++) {
var char = str[i];
if (charSet.has(char)) {
duplicates.add(char);
} else {
charSet.add(char);
}
}
return Array.from(duplicates);
}
var input = "abcaadef";
var duplicates = findDuplicates(input);
console.log("重複する文字:", duplicates);
出力:
重複する文字: ["a", "d"]
これらはJavaScriptで重複する文字を見つけるためのいくつかの一般的な方法です。必要に応じて、これらのコード例をカスタマイズして使用することができます。