JavaScriptで文字列の指定した位置の文字をアスタリスクに置き換える方法
本記事では、最初の引数として文字列を、2番目の引数として数値の配列を受け取るJavaScript関数を作成する方法を解説します。この関数は、2番目の引数である配列の各要素が示すインデックス位置にある文字を、すべてアスタリスク(*)に置き換えた新しい文字列を返します。
実装例
まずは具体的なコードを見てみましょう。ここではreduce()メソッドを使って、元の文字列を1文字ずつの配列に分解し、指定されたインデックスの文字を置き換えてから再び結合しています。
const str = "Lorem ipsum dolor sit amet consectetur adipiscing elit";
const arr = [4, 7, 9, 12, 15];
const replceWithAsterisk = (str, indices) => {
let res = '';
res = indices.reduce((acc, val) => {
acc[val] = '*';
return acc;
}, str.split('')).join('');
return res;
};
console.log(replceWithAsterisk(str, arr));コードの仕組み
処理の流れは以下の通りです。
1. 文字列を配列に変換: str.split('')によって、文字列が1文字ずつ格納された配列になります。
2. reduce()で置き換え: reduce()のコールバック関数内で、指定された各インデックス(4, 7, 9, 12, 15)の要素を'*'に上書きします。
3. 配列を再結合: join('')により、置き換え後の配列を1つの文字列に戻します。
出力結果
上記のコードを実行すると、コンソールには次のように表示されます。
Lore* i*s*m *ol*r sit amet consectetur adipiscing elit
ご覧のとおり、インデックス4、7、9、12、15に相当する文字がすべてアスタリスクに置き換えられていることが確認できます。この手法は、パスワードや個人情報などの機密性の高いデータを部分的にマスキングしたい場合などにも応用できます。
-
JavaScriptで文字列内の文字がすべて一意かどうかを判定する方法
問題JavaScriptの関数を作成することを目標とします。この関数は文字列を引数として受け取り、その文字列に含まれるすべての文字が一度だけ出現していれば true を返し、同じ文字が複数回出現していれば false を返します。コード例以下が実際のコードです。const str = thisconaluqe;const allUnique = (str = ) => { for(let i = 0; i < str.length; i++){  
-
C++で部分文字列を別の部分文字列に置き換える方法
この記事では、C++のstd::stringクラスが提供するreplace関数を使って、文字列内の一部(部分文字列)を別の文字列に置き換える方法を解説します。replace関数は、指定した位置posから始まるlen文字分の範囲を、新しい文字列で置き換えることができます。replace関数の基本構文string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);主なパラメータの説明pos: 置き換えを開始する位置(挿入ポイント)です。len: 置き換え対象となる、削除する文字数を表