この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript コーディング問題
46. `_.once()`を実装する
function once(func) { let result; let called = false; return function (...args) { if (!called) { called = true; result = func.apply(this, args); } return result; };}
まず、once()
関数は引数として関数func
を受け取ります。
内部で、結果をキャッシュするためにlet result
とlet called = false
の2つの変数を宣言します。
そして、実際にキャッシュ処理を行う無名関数を戻します。
この無名関数は、最初に呼び出された場合にcalled
をtrue
にし、func
を呼び出します。
結果はresult
に保存され、2回目以降に呼び出された場合には、キャッシュされたresult
が返されます。
この方法で、「最多1回の呼び出し制限」の実装が完了します。