1. ホーム
  2. javascript

[解決済み】ループ内に関数を作らない【重複あり

2022-02-20 20:43:22

質問

この場合、jslintのエラーはどのように解決するのが正しいのでしょうか?これを使用するオブジェクトにゲッター関数を追加しています。ループ内で関数を作成せずに行う方法がわかりません。

for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: function() { // TODO solve function in loop.
            return this.name_;
       }
   };
}

解決方法は?

関数をループの外に移動させる。

function dummy() {
    return this.name_;
}
// Or: var dummy = function() {return this.name;};
for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: dummy
   };
}

... また、メッセージを無視するために loopfunc オプション をファイルの先頭に追加します。

/*jshint loopfunc:true */