jQuery的map方法用于將數組中的每個元素通過一個函數傳遞后返回新的數組。
$.map(array, function(elementOfArray, indexInArray){ //返回新元素 });
可以看到map方法接收兩個參數,一個數組和一個回調函數。其中回調函數的第一個參數是數組中的每個元素,第二個參數是該元素的索引。這個函數返回值將會成為新數組中的一個元素。
另外一個常用的用法是傳入一個簡單的函數名作為參數,它會被自動轉換成內部函數。例如:
var names = ["Tom", "Jim", "Bob"]; var lengths = $.map(names, function(value, index){ return value.length; }); alert(lengths); // 輸出 3, 3, 3
在這個例子中,我們定義了一個names數組,然后利用map方法返回一個新的lengths數組,它是原數組中每個元素的長度。
另外一個實用的方法是使用map方法來處理表單元素。以下代碼演示了如何使用map方法來收集表單中的數據:
var form_data = $("form").map(function() { return $(this).serializeArray(); }).get();
在這個例子中,我們選擇了所有的表單元素,然后使用map方法將表單中的每個元素序列化為一個JavaScript對象數組。最后,我們調用get方法將整個對象數組返回。
無論你是想轉換數組或者其他數據類型,jQuery的map方法都會是一個非常強大和實用的工具。
下一篇css動畫表情