2012-09-20 61 views
2

爲什麼下面的jQuery代碼有時拋出的錯誤 「CONCAT不是一個函數」:jQuery.map(....)CONCAT不是一個函數

var myArray = $('div.foo') 
    .filter(function() { return $(this).is('.something'); }) 
    .map(function() { 
     return [['a', 'b', $(this).val()]]; 
    }); 

return myArray.concat(anotherArray); 

回答

5

$().map()返回一個jQuery對象,而不是數組。
jQuery對象沒有concat()方法。您需要撥打.get()才能獲得真實的數組。

+0

阿確定,jQuery的文檔在這方面是惱人的道:「$ .MAP()方法應用一個函數的每個項目中的陣列或對象,並將結果映射到一個新的數組中。「 – cbp

+0

是的,但在這種情況下,您正在使用jQuery對象,而不是數組。 '$ .map(myArray,function(){})'與$('selector')不一樣map(function(){})' – BLSully

+0

啊我明白了。 – cbp