一、原生map()
定義:數(shù)組的方法候生。
作用:創(chuàng)建一個(gè)新數(shù)組,結(jié)果是該數(shù)組中的每個(gè)元素為绽昼,調(diào)用一個(gè)特定的函數(shù)后返回的結(jié)果唯鸭。
結(jié)構(gòu):map()中的處理函數(shù)能接受三個(gè)參數(shù),分別指代當(dāng)前元素硅确、當(dāng)前元素的索引目溉、數(shù)組本身明肮。
//例
var arr = [5,6,7,8,9];
var arr_map = arr.map(function(value){
return value+1
});
console.log(arr_map)
//=> [6,7,8,9,10]
//實(shí)際上傳遞了三個(gè)參數(shù)
arr.map(function(currentValue, index, array){
// currentValue -> 當(dāng)前元素
// index -> 當(dāng)前元素的索引
// array -> 數(shù)組本身
});
["1", "2", "3.5"].map(parseInt); // 結(jié)果不是[1, 2, 3],而是[1, NaN, NaN]
["1", "2", "3.5"].map(function(num){ return parseInt(num)}); //得到正確結(jié)果[1, 2, 3]
parseInt()
定義:解析一個(gè)字符串缭付,并返回一個(gè)整數(shù)柿估。
語法:
parseInt(string, radix);
string 必需。要被解析的字符串陷猫。
radix 可選秫舌。表示要解析的數(shù)字的基數(shù)。該值介于 2 ~ 36 之間绣檬。
//如果省略該參數(shù)或其值為 0足陨,則數(shù)字將以 10 為基礎(chǔ)來解析。如果它以 “0x” 或 “0X” 開頭娇未,將以 16 為基數(shù)墨缘。
//如果該參數(shù)小于 2 或者大于 36,則 parseInt() 將返回 NaN零抬。
map 方法 (Array) (JavaScript)
對(duì)數(shù)組的每個(gè)元素調(diào)用定義的回調(diào)函數(shù)并返回包含結(jié)果的數(shù)組镊讼。
//使用map()重組數(shù)組
var k_Array = [
{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}
];
var reformat_Array = k_Array.map(function(obj) {
var Obj = {};
Obj[obj.key] = obj.value;
return Obj;
});
console.log(reformat_Array)
// reformat_Array -> [{1: 10}, {2: 20}, {3: 30}],
二、jQuery的$.map()
// 篩選數(shù)組元素
var arr_Number = [1,2,3,4,5,6,7,8];
var big_Number = $.map(arr_Number,function(value){
if(value>2){
return value;
}
});
console.log(big_Number)
// big_Number -> [3,4,5,6,7,8]
// 處理對(duì)象
var person = {
jack:{age:9,name:jack,sex:man},
tom:{age:20,name:tom,sex:woman},
bob:{age:30,name:bob,sex:man}
}
var Man = $.map(person,function(value,key){
if(value.sex=='man'){
return key;
}
})
// Man ->[jack,bob]
參考