10-静态方法map方法

 原生的map与jQuery的map。

1.原生的map:不能遍历伪数组。

2.jQuery的map:可以遍历伪数组。

jQuery的map与each。

1.map:map返回的是一个空数组,并且支持在回调函数中对遍历的数组进行处理。

2.each:each是遍历谁就返回谁,并且不支持在回调函数中对遍历的数组进行处理。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>10-静态方法map方法</title>
    <script src="JS_file/jquery-1.12.4.js"></script>
    <script>
        var arry=[1,3,5,7,9]  //数组
        var obj={0:1,1:3,2:5,3:7,4:9,length:5};//伪数组
        //1.利用原生JS的map方法遍历
        /*
        * 第一个参数:当前遍历到的元素
        *第二个参数:当前遍历到的索引
        * 第三个参数:当前遍历到的数组
        * 注意点:
        * 和原生的forEach一样,不能遍历伪数组
        * */
     //   arry.map(function (value, index, array) {
     //       console.log(index,value,array);
   //     });
      //  obj.map(function (value,index,array) {// 报错obj.map is not a function
       //     console.log(index,value,array);
       // })
        /*
        * 第一个参数:要遍历的数组
        * 第二个参数:每遍历一个元素之后执行的回调函数
        * 回调函数的参数:
        * 第一个参数:遍历到的元素
        *第二个参数:遍历到的索引
        * 注意点:
        * 和jQuery的each静态方法一样,map静态方法也可以遍历伪数组
        * */
     //   $.map(arry,function (value,index) {
    //        console.log(index,value)
    //    });
        /*
        * jQuery的each静态方法和map静态方法的区别:
        *each静态方法默认返回值是,遍历谁就返回谁
        *map静态方法的默认返回值是,一个空数组
        * */
       var res1= $.map(obj,function (value,index) {
            console.log(index,value);
        })
       var res2= $.each(obj,function (index,value) {
            console.log(index,value);
        })
        console.log(res1); //是一个空数组
       console.log(res2);  //返回的是obj


        /*
        *each静态方法不支持在回调函数中对遍历的数组进行处理
        * map静态方法可以在回调函数中通过return 对遍历的数组进行处理,然后生产一个新的数组返回
        */
        var res3= $.map(obj,function (value,index) {
            console.log(index,value);
            return value+index;    
        })
       var res4= $.each(obj,function (index,value) {
            console.log(index,value);
            return index+value    
        })
        console.log(res3); //有返回值,返回值是一个数组
       console.log(res4);  //无返回值
    </script>
</head>
<body>

</body>
</html>

总结:1.静态方法map方法和each方法一样,JS原生无法遍历伪数组,jQuery可以遍历伪数组

            那么map与each又有什么区别呢?

            区别一:.静态方法each是遍历谁,就返回谁;静态方法map方法返回,一个空数组

            区别二:静态方法map可以在回调函数中通过return对遍历的数组进行处理,然后产生一个新的数组返回;

                          静态方法each不支持在回调函数中对遍历数组进行处理

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当将一个Map转换为指定类型的JavaBean对象时,可以使用反射来实现。下面是一个示例的静态方法,它将一个Map转换为指定类型的JavaBean对象: ```java import java.lang.reflect.Field; import java.util.Map; public class MapToBeanConverter { public static <T> T convertMapToBean(Map<String, Object> map, Class<T> clazz) throws Exception { T bean = clazz.newInstance(); for (Map.Entry<String, Object> entry : map.entrySet()) { String fieldName = entry.getKey(); Object value = entry.getValue(); Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); field.set(bean, value); } return bean; } } ``` 使用示例: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { Map<String, Object> map = new HashMap<>(); map.put("name", "John"); map.put("age", 25); Person person = MapToBeanConverter.convertMapToBean(map, Person.class); System.out.println(person.getName()); // 输出: John System.out.println(person.getAge()); // 输出: 25 } } ``` 以上代码中,我们定义了一个`MapToBeanConverter`类,其中的`convertMapToBean`方法接受一个`Map<String, Object>`类型的参数和一个目标类型的`Class<T>`参数。该方法使用反射遍历Map的键值对,通过反射设置目标类型对象的属性值,最后返回转换后的JavaBean对象。 请注意,上述代码只是一个示例,可能需要根据具体的需求进行修改和适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值