2011-10-14 82 views
4

這是我試圖做的一個簡單的例子。我試圖讓我的包裝函數myElements返回來自每個迭代器下劃線的元素。我可以追蹤_.each函數中els的值,但是如何從我的buttonClickListener調用函數時返回這些值?下劃線每個方法返回值

buttonClickListenr: function(event){ 

    if ($(event.target).is(myElements())) return; 
    ..// otherwise move on in my event phase 

} 

myElements: function(){ 
    var filter=['a','b']; 
    _.each(filter, function(el){ 
     return el 
    }); 
} 

回答

0

你試圖做的事情沒有意義。該「包括」運營商可能更對您有用:

if (_(filter).include($(event.target))){ return; }

1

each函數將爲每個元素調用一次回調,而不按照您的期望對返回值進行分組。相反,你需要將它們存儲在其中仍然存在each方法完成

請嘗試以下

getNums: function(){ 
    var filter=['20','2']; 
    var result = []; 
    _.each(filter, function(num){ 
    result.push(num); 
    }); 
    return result; 
} 

編輯

OP澄清他們只是想看看是否event.target是在後結構陣列。在這種情況下,您只需要使用indexOf方法。例如,

getNums: function() { 
    return ['20', '2']; 
}, 

buttonClickListener: function(event){ 
    if (this.getNums().indexOf(event.target) >= 0) { 
    // It's present 
    } 
} 
+0

正確的,但這種返回數字的ARRY。我想能夠調用這個if(bla.is(getNums())...做一些事情,所以我希望能夠使用返回的值逐個檢查is方法 – Chapsterj

+0

@Chapsterj這真的不清楚你想要什麼功能,然後你可以嘗試給一個更大的例子嗎? – JaredPar

+0

爲什麼不'if(getNums.length> 0){...'? –