JavaScriptで重複する文字を見つける方法


  1. 方法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"]
  1. 方法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"]
  1. 方法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で重複する文字を見つけるためのいくつかの一般的な方法です。必要に応じて、これらのコード例をカスタマイズして使用することができます。