ホームページ >ウェブフロントエンド >jsチュートリアル >apply+Math.max() 関数の使用
今回は apply+Math.max() 関数の使い方についてお届けします。 apply+Math.max() 関数を使用する際の注意点について、実際の事例を見てみましょう。
以下では、js の apply 関数と Math.max() 関数の問題を紹介します。具体的な内容は次のとおりです。
var arr=[1,3,6,3,7,9,2]; console.log(Math.max.apply(null,arr));
なぜこの方法で配列の最大値を計算できるのか理解できませんでした。まだ理解できません。jsの専門家からアドバイスをお願いします。
回答 1
Function.apply() は JS の OOP 機能であり、通常、上記のコードの場合、
XXX.apply の継承と拡張をシミュレートするために使用されます。関数を呼び出すメソッドです。パラメータは次のとおりです: apply(Function, Args)、
Function は呼び出されるメソッド、Args はパラメータ リスト、Function が null の場合、デフォルトは上記です、
つまり、
Math.max.apply(null, arr)
が考えられます
apply(Math.max, arr)
そして、arrはmaxメソッドのパラメータリストであり、パラメータはいくつかの数値です、つまり
Math.max(a, b, c, d, ...)
applyを使用するときは、すべてのパラメータを配列に追加します、つまり
arr = [a, b, c, d, ...]です。
は元の式に代入され、
Math.max.apply(null, [a, b, c, d, ...])
は実際には
Math.max(a, b, c, d, ...)
と同等です。 ここで、apply を使用する利点は、一部の JS エンジンでのパフォーマンスが向上することです。
回答 2
Math.max()
メソッドは、次のような複数のパラメーターの受け渡しをサポートしています。 Math.max(1,4,2,3,7,5 , 6)
Math.max()
方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)
但是它不支持直接传递一个数组作为参数,比如:Math.max(new Array(1,4,2,3,7,5,6))
Math.max(new Array(1,4,2,3,7,5,6))。 <p style="text-align: left;"></p>ここでは、配列を一つずつ分割してMath.max()メソッドに渡す方法さえあれば、配列を渡すメソッドが実装されています。 <p style="text-align: left;"></p>すべての関数には apply (スコープ チェーン、パラメーター) メソッドがあり、この関数の「パラメーター」は配列を受け取り、配列内の各値が分離されて呼び出し元に渡されます。 <p style="text-align: left;">JavaScriptのMath.max.applyとMath.maxの違い<span style="color: #ff0000"><strong></strong>JavaScriptのMath.maxメソッドは、指定されたパラメータの中で最大の数値を見つけることができます。 </span></p>
<pre class="brush:php;toolbar:false">> Math.max('1','2','3.1','3.2')
< 3.2
> Math.min(1,0,-1)
< -1</pre></p>しかし、配列の場合はこのように呼び出すことはできません。 <p style="text-align: left;"><strong>この時点で apply メソッドが使用されます: </strong><pre class="brush:php;toolbar:false">apply 方法 (Function) (JavaScript)
调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。
apply([thisObj[,argArray]])
thisObj
可选。 要用作 this 对象的对象。
argArray</pre></p> オプション。 関数に渡される引数のセット。 <p style="text-align: left;"> 巧みに配列を Math.max および Math.min に呼び出せるようにします。 </p><pre class="brush:php;toolbar:false">> Math.max.apply(null, ['1','2','3.1','3.2'])
< 3.2
> Math.min.apply(null, [1,0,-1])
< -1</pre>
<p style="text-align: left;">この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 </p>
<p style="text-align: left;">推奨読書: </p>
<p style="text-align: left;"><br>バックグラウンドコントローラーに配列を渡す方法</p>
<p></p>
<p></p>Vue.jsでログインフォームコードをカスタマイズする方法<p><a href="http://www.php.cn/js-tutorial-403250.html" target="_blank"></a></p>
以上がapply+Math.max() 関数の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。