jQuery是一個(gè)很好用的JavaScript框架,其中的map方法可以讓我們很方便地操作數(shù)組和對(duì)象。
map方法處理的對(duì)象可以是數(shù)組或普通的JavaScript對(duì)象,返回一個(gè)新的數(shù)組,這個(gè)新數(shù)組由原數(shù)組每個(gè)元素執(zhí)行方法后的結(jié)果組成。
$(function(){
// 數(shù)組處理
var arr = [1, 2, 3, 4, 5];
var newArr = $.map(arr, function(item, index){
return item * index;
});
console.log(newArr); // [0, 2, 6, 12, 20]
// 對(duì)象處理
var obj = {name: 'Tom', age: 18};
var newObj = $.map(obj, function(value, key){
return value + ' is ' + key;
});
console.log(newObj); // ['Tom is name', '18 is age']
});
map方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)為需要處理的數(shù)組或?qū)ο螅诙€(gè)參數(shù)為一個(gè)回調(diào)函數(shù),用來(lái)執(zhí)行我們的操作。
我們可以在回調(diào)函數(shù)中返回新的值,這個(gè)值將會(huì)被放入新的數(shù)組中。
在上面的例子中,我們分別處理了數(shù)組和對(duì)象。處理數(shù)組的回調(diào)函數(shù)接收兩個(gè)參數(shù),第一個(gè)參數(shù)是數(shù)組的元素,第二個(gè)參數(shù)是元素的索引。處理對(duì)象的回調(diào)函數(shù)接收兩個(gè)參數(shù),第一個(gè)參數(shù)是對(duì)象的鍵值,第二個(gè)參數(shù)是鍵名。
最后需要注意的是,jQuery的map方法不會(huì)改變?cè)瓟?shù)組或?qū)ο螅欠祷匾粋€(gè)新的數(shù)組。