一、原生map()
定义:数组的方法。
作用:创建一个新数组,结果是该数组中的每个元素为,调用一个特定的函数后返回的结果。
结构:map()中的处理函数能接受三个参数,分别指代当前元素、当前元素的索引、数组本身。
//例
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]
//实际上传递了三个参数
arr.map(function(currentValue, index, array){
// currentValue -> 当前元素
// index -> 当前元素的索引
// array -> 数组本身
});
["1", "2", "3.5"].map(parseInt); // 结果不是[1, 2, 3],而是[1, NaN, NaN]
["1", "2", "3.5"].map(function(num){ return parseInt(num)}); //得到正确结果[1, 2, 3]
parseInt()
定义:解析一个字符串,并返回一个整数。
语法:
parseInt(string, radix);
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
//如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
//如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
map 方法 (Array) (JavaScript)
对数组的每个元素调用定义的回调函数并返回包含结果的数组。
//使用map()重组数组
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()
// 筛选数组元素
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]
// 处理对象
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]
参考
https://www.cnblogs.com/yangshifu/p/7415105.html