JavaScriptで配列のすべての値の先頭に文字列を付加する関数の作成方法
JavaScriptで、文字列リテラルを要素とする次のような配列があったとします。
const arr = ["a", "b", "c"];
ここで「Hello」という文字列があり、この文字列を配列内のすべての値(各要素)の先頭に追加したいと考えます。
そのためには、第1引数に文字列の配列を受け取り、第2引数に単一の文字列を受け取る関数を作成します。
この関数は、第2引数で渡された文字列を配列の各要素の先頭に付加します。その際、2つの値の間には区切り文字(ここでは「_」)を挿入することとします。
したがって、期待される出力は次のようになります。
const output = ["Hello_a", "Hello_b", "Hello_c"];
実装例
forループで各要素を走査し、テンプレートリテラルを使って新しい文字列を組み立てるコードは次のとおりです。
const arr = ["a", "b", "c"];
const prependLiteral = (arr = [], str = '') => {
for(let i = 0; i < arr.length; i++){
arr[i] = `${str}_` + arr[i];
};
return arr.length;
};
prependLiteral(arr, 'Hello');
console.log(arr);出力結果
コンソールには次のように出力されます。
[ 'Hello_a', 'Hello_b', 'Hello_c' ]
補足:map()を使った別のアプローチ
上記の例では元の配列を直接書き換えていますが、元の配列を保持したまま新しい配列を生成したい場合は、Array.prototype.map() を使うとより簡潔に記述できます。
const arr = ["a", "b", "c"];
const result = arr.map(item => `Hello_${item}`);
console.log(result); // [ 'Hello_a', 'Hello_b', 'Hello_c' ]用途に応じて、破壊的な方法(forループ)と非破壊的な方法(map())を使い分けるとよいでしょう。
-
JavaScriptのArray.prototype.map()メソッドの使い方を徹底解説
Array.prototype.map()とは? JavaScriptのArray.prototype.map()メソッドは、配列の各要素に対してコールバック関数を実行し、その戻り値から新しい配列を作成するためのメソッドです。元の配列は変更されないため、安全にデータ変換を行いたい場合に非常に便利です。 構文 arr.map(function callback(currentValue[, index[, array]]) 各引数の意味は以下のとおりです。 currentValue:現在処理している要素の値 index(省略可能):現在処理している要素のインデックス番号 array(省略可能
-
JavaScript配列から一意の値(重複なし)を取得する方法
JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <