map()处理数组和对象数据

一、原生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

你可能感兴趣的:(map()处理数组和对象数据)