请问老师关于map

请问老师关于map

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>习题</title>
</head>
<body>

<h1>筛选和遍历jQuery对象</h1>

<ul>
    <li class="item1">item1</li>
    <li class="item2">item2</li>
    <li class="item3">item3</li>
    <li class="item4">item4</li>
    <li class="item5">item5</li>
    <li class="item6">item6</li>
    <li class="item7">item7</li>
    <li class="item8">item8</li>
    <li class="item9">item9</li>
</ul>

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script>
    $(function(){
          var a=new Array();
        $('li').map(function(index,domElement){
           
            a.push($(this).html());
        })
        console.log(a);
    })
</script>
</body> 
</html>

不是说map和each的区别就是说 map返回的是一个新的吗?

那请问为什么这里我使用map返回a,a数组竟然改变了?我并没使用返回值接收啊

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

首先a数组是你自己创建的一个新数组,然后使用map循环遍历的是所有li对象的集合,

http://img1.sycdn.imooc.com//climg/5a9cbeda0001d2a803230110.jpg

不是你自己创建的a数组,所以打印出的结果就是:

http://img1.sycdn.imooc.com//climg/5a9cbf070001274a08180041.jpg

而教辅中的例子是循环遍历的是本身定义好的数组,

http://img1.sycdn.imooc.com//climg/5a9cbf4c0001899d03930182.jpg

这两个是有区别的哦,自己可以再测试下,祝学习愉快~~

  • hy_wang 提问者 #1
    请问老师关于教辅中的例子为什么map前没有写jquery对象,以及我在我的例子中加入一个数组参数就会报错。
    2018-03-05 15:57:49
  • 好帮手慕星星 回复 提问者 hy_wang #2
    map的语法: $.map( object, callback ) object为操作的对象,callback为回调函数,你的意思是说在回调函数里面再放一个参数会报错是吗,例如: <script type="text/javascript"> var items = [0, 1, 2, 3, 4, 5, 6, 7]; var itemsNew = $.map(items, function(i, docElement) { if (i > 5) return null; return i; }); console.log(itemsNew); console.log(items) </script> 我测试是没有问题的啊,还是说在其他地方加上参数呢。
    2018-03-05 16:33:40
  • hy_wang 提问者 #3
    老师我想请问一下关于$.方法和$对象.方法有什么区别,分别代表什么意义
    2018-03-06 19:12:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师