_.filter(this.pluck(key),function(item){
return item ? value.toLowerCase() === item.toLowerCase() : false;
});
如果回調的返回值爲true,有沒有辦法停止過濾器迭代?突破_.filter()
_.filter(this.pluck(key),function(item){
return item ? value.toLowerCase() === item.toLowerCase() : false;
});
如果回調的返回值爲true,有沒有辦法停止過濾器迭代?突破_.filter()
我發現這可以用any
(又名some
)來完成:
_.any(this.pluck(key),function(item){
return item ? value.toLowerCase() === item.toLowerCase() : false;
});
因爲梯形圖將返回一個匹配的數組,而第一個返回true/false,所以'any()'不是可替換['filter()'](http://underscorejs.org/#filter)如果你最初的意圖是檢查_if_集合包含某些值,那麼any()將會很好,否則,如果你想使用過濾的數據,any()不是正確的。我會相應地使用'for' /'while'循環和'break'。 – 2016-03-27 09:05:40
這種糟糕 - 但最好的辦法似乎是處理你的DS樣(或轉換成)一個數組,並迭代一個for
環回或等同於break;
條件。
請看Downvote AND awnser的追求。如果這是錯誤的。 ;)
不清楚:這段代碼的上下文是什麼?過濾後的數據是否會被使用,或只應該被測試是否存在某些值?什麼是使用'filter()'並想在某些情況下打破的原因? - 是的,這個Q是「老」,但用戶仍然可能會偶然發現。 – 2016-03-27 09:12:39