箭头函数和JavaScript中map函数

2018-06-01  本文已影响80人  愤怒的_菜鸟

JavaScript的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似
1> filter是满足条件的留下,是对原数组的过滤;
2> map则是对原数组的加工,映射成一一映射的新数组

 1 let arr = [1, 2, 3, 4];
 2 let newArr = arr.map(function(item) {  // 使用map方法
 3         return item * 2;
 4 });
 5 console.log(newArr);    // [2, 4, 6, 8]
 6 
 7 
 8 let arr = [1, 2, 3, 4];
 9 let newArr = arr.filter(function(item) {  // 使用filter方法
10         if (item % 2 !== 0) {
11             return item;
12         } 
13 });
14 console.log(newArr);    // [1, 3];

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。
传递给map()的函数的调用方式和传递给forEach()的函数的调用方式一样。但传递给map()的函数应该有返回值。注意:map()返回的是新数组:它不修改调用的数组。如果是稀疏数组,返回的也是相同方式的稀疏数组:它具有相同的长度,相同的缺失元素。
在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) ,但其实,你的回调函数也可以支持多个参数,譬如:元素的索引index、原始数组arr。
使用 map 方法来为 oldArray 中的每一项增加3,并且在 newArray 中保存它们。 oldArray 不应该被改变。
代码:

var oldArray = [1,2,3,4,5]; 
var newArray = oldArray.map(function(val){return val+3;});

下面是工作用中箭头函数和map函数同时用到的,对表格的删除时用到的

function delectCompete(){
            var s = $("#clientGrid").datagrid('getSelections');
            if(s == null || s == "") {
                return $.messager.alert("提示", "请至少选择一行");
            }
            var roomIdArray = s.map(item=>item.roomId); 
            var roomIdStr = roomIdArray.toString(',');
            $.post("client!deleteRoomInfo.action",{
                    "roomIds":roomIdStr,
                },
                function(data){
                    data = JSON.parse(data);
                    $.messager.alert("提示", data.message);
                    $("#clientGrid").datagrid("reload");
                }           
            )           
        }
上一篇下一篇

猜你喜欢

热点阅读