国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
JavaScriptのMAPとReduceの違いは何ですか?
マップ機(jī)能はJavaScriptでどのように機(jī)能しますか?
JavaScriptで機(jī)能を削減するにはどうすれば機(jī)能しますか?
JavaScriptでマップを使用して削減できますか?
JavaScriptのMAPとForeachの違いは何ですか?
マップ関數(shù)を使用してJavaScriptの配列を変換するにはどうすればよいですか?
resid機(jī)能を使用して、javascriptの配列の要素を組み合わせた方法は?
JavaScriptのマップ関數(shù)の一般的なユースケースは何ですか?
JavaScriptのマップをデバッグまたは削減する方法は?
ホームページ ウェブフロントエンド jsチュートリアル MAPを使用して、機(jī)能的なJavaScriptで削減します

MAPを使用して、機(jī)能的なJavaScriptで削減します

Feb 18, 2025 am 09:10 AM

Using Map and Reduce in Functional JavaScript

コアポイント

  • javascriptネイティブArrayおよびmap()メソッドreduce()オブジェクトは、コードをより簡(jiǎn)潔で読みやすく、メンテナンスにしやすくする強(qiáng)力な機(jī)能プログラミングツールです。
  • map()は、配列內(nèi)のすべての要素に作用し、変換されたコンテンツを含む同じ長(zhǎng)さの別の配列を生成する基本的な機(jī)能プログラミング手法です。アレイオブジェクトにマッピング機(jī)能を追加することにより、ECMAScript 5は基本的な配列タイプを完全なファンチャーに変え、機(jī)能的なプログラミングを使いやすくします。
  • reduce()メソッド(ECMAScript 5の新しいメソッド)はmap()に似ていますが、別のファンクタを生成する代わりに、任意のタイプの単一の結(jié)果を生成します。アレイが単一の出力値に縮小されるように、配列の各要素に関數(shù)を適用します。
  • map()およびreduce()メソッドはパフォーマンスに影響を與える可能性がありますが、コードの品質(zhì)とそれらの使用に関する開発者の満足度の改善は、パフォーマンスへの一時(shí)的な影響を上回る可能性があります。著者は、開発のために機(jī)能的手法を使用し、現(xiàn)実世界の狀況での影響を測(cè)定する前に、特定のアプリケーションに適しているかどうかを決定することを推奨しています。 map() reduce() オブジェクトに基づいたネイティブ
および

メソッドが含まれます。 Array map()reduce()

をまだ使用していない場(chǎng)合は、今すぐ始めてください!ほとんどの最新のJavaScriptプラットフォームは、ECMAScript 5をネイティブにサポートしています。マッピングと規(guī)制により、コードをより簡(jiǎn)潔にし、読みやすく、維持しやすくなり、よりエレガントな機(jī)能開発に導(dǎo)くことができます。

map()reduce()パフォーマンス:予防策もちろん、必要に応じて、コードの読み取りとメンテナンスはパフォーマンスとバランスをとる必要があります?,F(xiàn)在、ブラウザは、

ループなどのより面倒な従來のテクニックを使用してより効率的です。 私のアプローチは、通常、最初に読みやすく維持しやすいコードを作成し、実際の狀況で問題に気付いた場(chǎng)合にパフォーマンスを最適化することです。早期最適化はすべての悪の源です。

また、ブラウザが最適化されているため、

およびforを最適化すると、これらの方法を使用すると、JavaScriptエンジンの改善をより有効にする可能性があることも考慮してください。私がパフォーマンスの問題に直面していない限り、私は楽観的にコードを書き、必要な場(chǎng)合に備えて私のバックアップポケットで私のコードを魅力的にするパフォーマンスの微調(diào)整を行うことを好みます。

Map

map()を使用します

マッピングは、配列內(nèi)のすべての要素に作用し、同じ長(zhǎng)さの別の配列(変換されたコンテンツを含む)を生成する基本的な機(jī)能プログラミング手法です。

より具體的には、単純なユースケースを考えてみましょう。たとえば、各単語の長(zhǎng)さを含む配列に変換する必要がある?yún)g語の配列があるとします。 (これは、複雑なアプリケーションで通常実行する必要がある複雑なロケット科學(xué)のようなものではありませんが、この単純なケースでそれがどのように機(jī)能するかを理解することで、ケースに備えてコードを適用するのに役立ちます)。

アレイで

ループを使用して、今後説明したことを行う方法を既に知っているかもしれません。このように見えるかもしれません:for

var animals = ["cat","dog","fish"];
var lengths = [];
var item;
var count;
var loops = animals.length;
for (count = 0; count < loops; count++) {
  item = animals[count];
  lengths.push(item.length);
}
console.log(lengths); //[3, 3, 4]
私たちが行ったのは、いくつかの変數(shù)を定義しました。各アイテムを保存します。配列の各ループで動(dòng)作します。一時(shí)的な內(nèi)部カウンター変數(shù)と

変數(shù)を使用して、animalsループを最適化します。次に、各アイテムをlengths配列の長(zhǎng)さまで反復(fù)します。各アイテムについて、その長(zhǎng)さを計(jì)算し、それをitem配列に押し込みます。 for loopsfor注:中間割り當(dāng)てなしでanimalsの長(zhǎng)さをlengths配列に直接プッシュすることで、これをより簡(jiǎn)潔に行うことができると言えます。これにより、コードが節(jié)約されますが、この非常に単純な例であっても、コードの読み取りが低下します。繰り返しますが、より効率的ではあるが簡(jiǎn)単ではないようにするために、既知の

配列の長(zhǎng)さを使用して

配列をに初期化し、animals[count]を使用する代わりにインデックスでアイテムを挿入できます。それはすべて、現(xiàn)実の世界でコードをどのように使用するかに依存します。 lengthsanimals lengthsこの方法には技術(shù)的な問題はありません。標(biāo)準(zhǔn)のJavaScriptエンジンで動(dòng)作するはずで、仕事をします。しかし、new Array(animals.length)の使用方法を知ったら、そうすることは不器用に見えるでしょう。 push これに対処するために

を使用する方法をお見せしましょう:

map()

この場(chǎng)合、

配列変數(shù)から再び開始します。ただし、宣言する他の変數(shù)のみはmap()です。これは、

配列の各要素に匿名のインライン関數(shù)をマッピングした結(jié)果に直接割り當(dāng)てます。この匿名関數(shù)は、各動(dòng)物で操作を?qū)g行し、長(zhǎng)さを返します。その結(jié)果、
var animals = ["cat","dog","fish"];
var lengths = animals.map(function(animal) {
  return animal.length;
});
console.log(lengths); //[3, 3, 4]
は、各単語の長(zhǎng)さを含むオリジナル

配列と同じ長(zhǎng)さのアレイになります。 animals

この方法について注意するいくつかのポイント。まず、元の方法よりもはるかに短いです。第二に、はるかに少ない変數(shù)を宣言する必要があります。変數(shù)が少ないほど、グローバルネームスペースにはノイズが少なくなり、同じコードの他の部分が同じ名前の変數(shù)を使用すると、競(jìng)合の可能性が低くなります。さらに、変數(shù)はその価値を最初から最後まで変更する必要はありません。機(jī)能的なプログラミングに飛び込むと、定數(shù)と不変の変數(shù)を使用する優(yōu)雅な能力を高く評(píng)価します。今すぐ學(xué)習(xí)を開始するのに遅すぎることはありません。

このアプローチのもう1つの利點(diǎn)は、指定された関數(shù)を分離してそのプロセスでクリーナーコードを生成することにより、その汎用性を改善する機(jī)會(huì)があることです。匿名のインライン関數(shù)は、亂雑に見え、コードの再利用をより困難にすることができます。この方法でコンテキストでそれを使用することができます。

getLength()これがどれほどきれいに見えるかを見てください。 Toolkitの一部としてマッピングを取得するだけで、コードをまったく新しい機(jī)能レベルに引き上げることができます。

var animals = ["cat","dog","fish"];
var lengths = [];
var item;
var count;
var loops = animals.length;
for (count = 0; count < loops; count++) {
  item = animals[count];
  lengths.push(item.length);
}
console.log(lengths); //[3, 3, 4]
ファンクターとは何ですか?

興味深いことに、マッピング機(jī)能を配列オブジェクトに追加することにより、ECMAScript 5を基本的な配列タイプを完全なファンチャーに変え、機(jī)能的なプログラミングを使用しやすくします。

古典的な機(jī)能プログラミングの定義によると、ファンサーは3つの條件を満たしています。

値のセット

が含まれています

各要素に作用するマッピング関數(shù)を?qū)g裝します
  1. そのマッピング関數(shù)は、同じサイズのファンサーを返します
  2. これは、次のJavaScriptミーティングで議論できるトピックです。
  3. 機(jī)能者の詳細(xì)については、Mattias Petter Johanssonのこの素晴らしいビデオをご覧ください。

rediming

を使用します

メソッドは、ecMascript 5の新しい方法でもあります。これは、に類似していますが、別のファンチャーを生成せず、単一の結(jié)果を生成します。たとえば、

配列內(nèi)のすべての単語の長(zhǎng)さの合計(jì)を數(shù)字として取得するとします。から始めることができます:

reduce() map()最初の配列を定義した後、実行合計(jì)の変數(shù)animalsを作成し、最初はゼロに設(shè)定します。また、

ループを通過するときに
var animals = ["cat","dog","fish"];
var lengths = animals.map(function(animal) {
  return animal.length;
});
console.log(lengths); //[3, 3, 4]
配列の各反復(fù)を保存する変數(shù)

、およびループカウンターの変數(shù)total、およびa item変數(shù)を最適化するanimals変數(shù)も作成しました。次に、Aforループを?qū)g行して、count配列內(nèi)のすべての単語を反復(fù)し、各単語をloops変數(shù)に割り當(dāng)てます。最後に、各アイテムの長(zhǎng)さを合計(jì)に追加します。 for animals繰り返しますが、このアプローチには技術(shù)的な問題はありません。配列から始めて、最終的に結(jié)果を得ます。ただし、itemメソッドを使用すると、このプロセスをより直接的にすることができます。

var animals = ["cat","dog","fish"];
var lengths = [];
var item;
var count;
var loops = animals.length;
for (count = 0; count < loops; count++) {
  item = animals[count];
  lengths.push(item.length);
}
console.log(lengths); //[3, 3, 4]
ここで起こるのは、新しい変數(shù)を定義し、匿名インライン関數(shù)と初期実行合計(jì)値ゼロの2つのパラメーターを使用して

配列を削減した結(jié)果に割り當(dāng)てていることです。削減は、配列內(nèi)の各アイテムを通過し、そのアイテムの関數(shù)を?qū)g行し、次の反復(fù)に合計(jì)された実行に追加します。ここで、インライン関數(shù)には2つのパラメーターがあります。ランサムと現(xiàn)在配列から処理されている?yún)g語です。この関數(shù)は、現(xiàn)在の値の現(xiàn)在の値を現(xiàn)在の単語の長(zhǎng)さに追加します。 total animals totalの2番目のパラメーターをゼロに設(shè)定することに注意してください。 2番目のパラメーターがなければ、

メソッドは引き続き機(jī)能しますが、結(jié)果は必ずしも予想される結(jié)果ではありません。 (それを試して、合計(jì)を?qū)g行するときにJavaScriptによって使用されるロジックを確認(rèn)してください。)

reduce()匿名のインライン関數(shù)の定義はtotalメソッドを呼び出すときに統(tǒng)合されるため、これは必要以上に複雑に見えるかもしれません。もう一度やりましょうが、匿名のインライン関數(shù)を使用する代わりに、まず名前付き関數(shù)を定義しましょう。 reduce

これはもう少し長(zhǎng)いですが、成長(zhǎng)するのは必ずしも悪いことではありません。この方法で表示すると、

メソッドで何が起こるかが少し明確になります。 reduce()

var animals = ["cat","dog","fish"];
var lengths = animals.map(function(animal) {
  return animal.length;
});
console.log(lengths); //[3, 3, 4]
メソッドには、アレイ內(nèi)の各要素に適用される関數(shù)と、合計(jì)の実行に使用される初期値の2つのパラメーターがあります。この場(chǎng)合、

という名前の新しい関數(shù)の名前と実行合計(jì)ゼロの初期値を渡します。 reduce関數(shù)を作成して、2つのパラメーターも受け入れます:実行されるrun sumと文字列。

reduce()結(jié)論addLengthaddLength()

定期的に使用する習(xí)慣を開発することで、コードをより簡(jiǎn)潔で、より一般的で、維持しやすくし、より機(jī)能的なJavaScriptテクノロジーを使用する方法を開くための代替手段が提供されます。

および

メソッドは、ECMAScript 5に追加された新しいメソッドの2つにすぎません。おそらく、今日見られるコードの品質(zhì)と開発者の満足度の改善は、パフォーマンスへの一時(shí)的な影響をはるかに上回るでしょう。機(jī)能的な手法を使用して、

map()がアプリケーションに適しているかどうかを決定する前に、現(xiàn)実世界の影響を開発および測(cè)定します。 reduce()

この記事は、Panayiotis Velisarakos、Tim Severien、Dan Princeによってレビューされました。 SitePointコンテンツを最高の狀態(tài)にしてくれたすべてのSitePointピアレビューアに感謝します! map()reduce() map()reduce()functional javascript(faq)

におけるMap-Reduceに関するよくある質(zhì)問

JavaScriptのMAPとReduceの違いは何ですか?

javascriptでは、マップと還元は両方ともアレイに作用する高次関數(shù)です。マップ関數(shù)は、元の配列の各要素に関數(shù)を適用することにより、新しい配列を作成するために使用されます。元の配列は変更されませんが、新しい配列を返します。一方、還元関數(shù)は、配列を単一の値に単純化するために使用されます。アレイの各要素に関數(shù)を適用して、単一の出力値に縮小できるようにします。

マップ機(jī)能はJavaScriptでどのように機(jī)能しますか?

JavaScriptのマップ関數(shù)は、既存の配列から新しい配列を作成することで機(jī)能します。これは、指定された関數(shù)を元の配列內(nèi)の各要素に適用することにより行います。この関數(shù)は、配列內(nèi)の各要素に対して1回呼び出されます。結(jié)果は、関數(shù)呼び出しの結(jié)果を含む新しい配列です。

JavaScriptで機(jī)能を削減するにはどうすれば機(jī)能しますか?

JavaScriptの削減機(jī)能は、配列の各要素に関數(shù)を適用して、配列を単一の出力値に削減できるように機(jī)能します。出力値は、関數(shù)呼び出しの累積結(jié)果です。この関數(shù)は、アキュムレータと現(xiàn)在の値の2つのパラメーターを受け入れます。アキュムレータの蓄積関數(shù)呼び出しの返品値。

JavaScriptでマップを使用して削減できますか?

はい、JavaScriptでマップを使用して削減できます。実際、それらは機(jī)能的なプログラミングでよく使用されます。マップ関數(shù)を使用して各要素を配列內(nèi)のコンバージョンを変換し、redoce関數(shù)を使用して、変換された要素を単一の出力値に結(jié)合することができます。

JavaScriptのMAPとForeachの違いは何ですか?

マップとforeachはどちらもJavaScriptの配列に作用する高次関數(shù)です。それらの主な違いは、MAPが元の配列の各要素に関數(shù)を適用して新しい配列を作成し、Arlayの各要素に適用して副作用を取得することです。 foreachは新しい配列を返しません。

マップ関數(shù)を使用してJavaScriptの配列を変換するにはどうすればよいですか?

JavaScriptのマップ関數(shù)を使用して、配列の各要素に関數(shù)を適用して配列を変換できます。この関數(shù)は、配列內(nèi)の各要素に対して1回呼び出されます。結(jié)果は、関數(shù)呼び出しの結(jié)果を含む新しい配列です。

resid機(jī)能を使用して、javascriptの配列の要素を組み合わせた方法は?

JavaScriptのReduce関數(shù)を使用して、配列の要素を単一の出力値に組み合わせることができます。関數(shù)は配列內(nèi)の各要素に適用され、出力値は関數(shù)呼び出しの累積結(jié)果です。

JavaScriptのマップ関數(shù)の一般的なユースケースは何ですか?

JavaScriptのマップ関數(shù)は、アレイの各要素に関數(shù)を適用することにより、アレイを変換するために多くの場(chǎng)合使用されます。いくつかの一般的なユースケースには、文字列を數(shù)値に変換し、文字列のケースを変更し、オブジェクトからプロパティを抽出することが含まれます。

JavaScriptの機(jī)能を低下させる一般的なユースケースは何ですか?

JavaScriptの削減機(jī)能は通常、配列の要素を単一の出力値に結(jié)合するために使用されます。いくつかの一般的なユースケースには、數(shù)値の合計(jì)、最大値または最小値の検索、および連結(jié)文字列が含まれます。

JavaScriptのマップをデバッグまたは削減する方法は?

関數(shù)のconsole.logステートメントを使用して変數(shù)と式の値を表示することにより、JavaScriptのマップをデバッグまたはJavaScriptの機(jī)能を低減できます。また、debugger

以上がMAPを使用して、機(jī)能的なJavaScriptで削減しますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語版

SublimeText3 中國(guó)語版

中國(guó)語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaとJavaScriptの違いは何ですか? JavaとJavaScriptの違いは何ですか? Jun 17, 2025 am 09:17 AM

JavaとJavaScriptは、異なるプログラミング言語です。 1.Javaは、エンタープライズアプリケーションや大規(guī)模なシステムに適した、靜的に型付けされ、コンパイルされた言語です。 2。JavaScriptは動(dòng)的なタイプと解釈された言語であり、主にWebインタラクションとフロントエンド開発に使用されます。

See all articles