map和each返回值的区别

map和each返回值的区别

代码如下:

<!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 eleArr1 = $('li').map(function(index,domElement){
            return this.innerText; 
        });
        console.log(eleArr1.get());  
    });
    $(function(){
        var eleArr2 = $('li').each(function(index,domElement){
            return this.innerText;
        });
        console.log(eleArr2.get());
    })
</script>
</body>
</html>

第25行-第30行使用的是map,成功的实现了题目的要求,打印出了如下数组:

["item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9"]

而第31行-第36行使用的是each,打印结果却是

[li.item1, li.item2, li.item3, li.item4, li.item5, li.item6, li.item7, li.item8, li.item9]

请问,如果使用each,怎样才能打印出题目要求的结果?



正在回答

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

2回答

创建一个新数组,将获得的项加入到数组中,打印出这个数组,就是跟效果图一样了。

  • 袁民成 提问者 #1
    非常感谢!
    2017-09-13 15:28:20
小丸子爱吃菜 2017-09-12 17:13:22

each返回的是原来的数组,并不会新创建一个数组。而map方法会返回一个新的数组。所以它们返回的值会有所不同。

祝学习愉快!

  • 提问者 袁民成 #1
    在1-9的练习中,任务建议可以使用each,请问使用each,这样才能实现题目中规定形式的数组要求呢?
    2017-09-13 09:43:30
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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