0
我想遍歷一個對象數組,調用它們的方法。如果該方法的結果符合某些條件。我想立即返回結果。我寫了這個:Lodash,在循環中調用函數並返回第一個匹配結果
public getFirstMatch(value: string, allValues: string[]): Result {
let foundResult = undefined;
_.find(this.myArrayofMatchers, matcher => {
let result = matcher.isMatch(value, allValues);
if(result.isMatch){
foundResult = result;
return true;
}
})
return foundResult || new Result(false);
}
它的作品,但它似乎笨重和不清楚。 _.find
,恕我直言,不是我想要做的事情的明確指標,因爲我不關心實際的matcher
。 foundResult
需要存在的事實是我覺得很難看。而且它似乎需要更長時間。 有什麼我可以在這裏做得更好?有更好的lodash功能嗎?
順便說一句,這是我腦子裏想的,使用for循環
public isMatch(value: string, allValues: string[]): Result {
for (let i = 0; i < this.myArrayofMatchers.length; i++){
let result = this.myArrayofMatchers[i].isMatch(value, allValues);
if (result.isMatch) {
return result;
}
}
return new Result(false);
}
不'爲(_myArrray的VAR匹配)'工作? – georg
@georg你的意思是foreach?我聽說使用lodash是更好的練習,我關心效率(我知道,愚蠢的語言選擇)。 'for(let i = 0; i
不,我的意思是'for..of'循環,其功能與您的第二個片段完全相同。如果一個普通的語言結構起作用,則不需要使用庫。 – georg