map() の紹介
map() メソッドは、呼び出し配列内のすべての要素に対して提供された関数を呼び出した結果を格納した新しい配列を作成します。これは、配列の各要素を新しい要素に変換し、元の配列を変更せずに新しい配列を生成できる関数プログラミング手法です。
構文
let newArray = array.map(function callback(currentValue, index, array) { // Return element for newArray }, thisArg);
または、アロー関数を使用します:
let newArray = array.map((currentValue, index, array) => { // Return element for newArray });
パラメータ
-
callback: 3 つの引数をとり、新しい配列の要素を生成する関数:
- currentValue: 処理中の現在の要素。
- index (オプション): 現在の要素のインデックス。
- array (オプション): 配列マップが呼び出されました。
- thisArg (オプション): コールバックの実行時に this として使用する値。
戻り値
各要素がコールバック関数の結果である新しい配列。
map() の仕組み
- 不変性:map() は元の配列を変更しません。
- 要素ごとの変換: コールバック関数を各要素に適用します。
- 新しい配列を返します: 結果を新しい配列に収集します。
例
a.マッピング番号
例: 配列内の各数値を 2 で乗算します。
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(number => number * 2); console.log(doubled); // Output: [2, 4, 6, 8, 10]
b.文字列の変換
例: 文字列の配列を大文字に変換します。
const fruits = ['apple', 'banana', 'cherry']; const upperFruits = fruits.map(fruit => fruit.toUpperCase()); console.log(upperFruits); // Output: ['APPLE', 'BANANA', 'CHERRY']
c.オブジェクトのプロパティを抽出しています
例: オブジェクトの配列から特定のプロパティを抽出します。
const users = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ]; const names = users.map(user => user.name); console.log(names); // Output: ['Alice', 'Bob']
d.オブジェクトの配列のマッピング
例: 配列内の各オブジェクトを変換します。
const products = [ { productId: 1, price: 100 }, { productId: 2, price: 200 }, ]; const discountedProducts = products.map(product => ({ ...product, price: product.price * 0.9, })); console.log(discountedProducts); // Output: // [ // { productId: 1, price: 90 }, // { productId: 2, price: 180 }, // ]
map() と forEach() の違い
-
map():
- 新しい配列を返します。
- 各要素を変換して結果を収集したい場合に使用します。
-
forEach():
- 未定義を返します。
- 副作用 (ロギング、外部変数の変更など) を実行する必要があり、新しい配列が必要ない場合に使用されます。
forEach() の例:
let newArray = array.map(function callback(currentValue, index, array) { // Return element for newArray }, thisArg);
アロー関数でのmap()の使用
アロー関数は、コールバック関数を記述するための簡潔な構文を提供します。
例:
let newArray = array.map((currentValue, index, array) => { // Return element for newArray });
TypeScript のmap()
TypeScript は JavaScript に静的型付けを追加し、コンパイル時のエラーの検出に役立ちます。
a.型の注釈
配列内の要素の型と戻り値の型を指定できます。
例:
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(number => number * 2); console.log(doubled); // Output: [2, 4, 6, 8, 10]
b.ジェネリックタイプ
任意の型で動作する汎用関数を定義できます。
例:
const fruits = ['apple', 'banana', 'cherry']; const upperFruits = fruits.map(fruit => fruit.toUpperCase()); console.log(upperFruits); // Output: ['APPLE', 'BANANA', 'CHERRY']
一般的な使用例
- データの変換: データをある形式から別の形式に変換します。
- 値の抽出: オブジェクトから特定のフィールドを抽出します。
- データの構成: 既存のデータに基づいて新しい配列を作成します。
- 計算: 各要素に対して計算を実行します。
高度なトピック
a.他の配列メソッドとのmap()のチェーン
map() を filter()、reduce() などの他の配列メソッドと連鎖させることができます。
例:
const users = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ]; const names = users.map(user => user.name); console.log(names); // Output: ['Alice', 'Bob']
b.非同期操作の処理
map() はコールバック内の非同期操作を処理しません。非同期操作を実行する必要がある場合は、Promise.all() と map() の使用を検討してください。
例:
const products = [ { productId: 1, price: 100 }, { productId: 2, price: 200 }, ]; const discountedProducts = products.map(product => ({ ...product, price: product.price * 0.9, })); console.log(discountedProducts); // Output: // [ // { productId: 1, price: 90 }, // { productId: 2, price: 180 }, // ]
ベストプラクティス
- 副作用には map() を使用しないでください: 新しい配列が必要ない場合は、代わりに forEach() を使用してください。
- 元の配列の変更を避ける:map() は元の配列またはその要素を変更してはなりません。
- 値を返す: コールバック関数が値を返すようにします。そうしないと、新しい配列に未定義の要素が含まれることになります。
- 簡潔にするためにアロー関数を使用する: コードが短くなり、読みやすくなります。
結論
JavaScript と TypeScript で効果的に配列を操作するには、map() 関数を理解することが不可欠です。これは、データをクリーンかつ効率的に変換できる多用途の方法です。 map():
を思い出してください。- 新しい配列を作成します。
- 各要素に関数を適用します。
- 元の配列は変更されません。
map() をマスターすると、より簡潔で機能的なコードを作成できるようになり、保守性と可読性が向上します。
読んでいただきありがとうございます。このコンテンツが気に入ったら、お気軽にコーヒーをおごってください:
https://buymeacoffee.com/kellyblaire
以上がJavaScript Array map() メソッドについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

単純なJavaScript関数は、日付が有効かどうかを確認するために使用されます。 関数isvaliddate(s){ var bits = s.split( '/'); var d = new Date(bits [2] '/' bits [1] '/'ビット[0]); return !!(d &&(d.getmonth()1)== bits [1] && d.getdate()== number(bits [0])); } //テスト var

この記事では、jQueryを使用して、DOM要素の内側のマージン値とマージン値、特に外側の縁と要素の内側の縁の特定の位置を取得して設定する方法について説明します。 CSSを使用して要素の内側と外側の縁を設定することは可能ですが、正確な値を取得するのは難しい場合があります。 // 設定 $( "div.header")。css( "margin"、 "10px"); $( "div.header")。css( "padding"、 "10px"); このコードはそうだと思うかもしれません

この記事では、10個の例外的なjQueryタブとアコーディオンについて説明します。 タブとアコーディオンの重要な違いは、コンテンツパネルの表示方法と非表示にあります。これらの10の例を掘り下げましょう。 関連記事:10 jQueryタブプラグイン

ウェブサイトのダイナミズムと視覚的な魅力を高めるために、10の例外的なjQueryプラグインを発見してください!このキュレーションされたコレクションは、画像アニメーションからインタラクティブなギャラリーまで、多様な機能を提供します。これらの強力なツールを探りましょう。 関連投稿: 1

HTTP-Consoleは、HTTPコマンドを実行するためのコマンドラインインターフェイスを提供するノードモジュールです。 Webサーバー、Web Servに対して作成されているかどうかに関係なく、HTTPリクエストで何が起こっているかをデバッグして正確に確認するのに最適です

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

次のjQueryコードスニペットを使用して、Divコンテンツがコンテナ要素領域を超えたときにスクロールバーを追加できます。 (デモンストレーションはありません、それを直接firebugにコピーしてください) // d =ドキュメント // w =ウィンドウ // $ = jQuery var contentarea = $(this)、 wintop = contentarea.scrolltop()、 docheight = $(d).height()、 winheight = $(w).height()、 divheight = $( '#c


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版
中国語版、とても使いやすい

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
