老师关于js的一个问题

老师关于js的一个问题

$('.detail-img').map(function (index, item) {
    console.log(index)
    //判断该控件是否已经选择了文件
    if ($('.detail-img')[index].files.length > 0) {
        //将第i个文件流赋值给key为productImg i的表单键里面
        formData.append('productImg' + index, $('.detail-img')[index].files[0]);
    }
})
productCategoryList.map(function (item, index) {
    optionHtml += '<option data-value="'
        + item.productCategoryId + '">'
        + item.productCategoryName
        + '</option>';
})

老师我对这个 元素.map 和数据.map 中的index和item有点疑惑,看不太懂

正在回答

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

2回答

同学你好!

  1.  $('.detail-img').map(),看到前面有个$, 这个$ 并不是jquery中,本次项目使用的是zepto.js,zepto.js中的map方法的参数是以下格式;

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

  2. productCategoryList.map(),可以看到是JavaScript,而

    JavaScript中map的格式是:

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

所以出现了两个map参数含义不同的现象

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕酷酷 2020-03-08 17:50:59

同学你好,

1、map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

简单点理解这里map()相当于是一个循环,基本用法跟forEach方法类似。

2、$('.detail-img').map(function (index, item) 就是指遍历商品详情图图片,获取里面的文件流。

productCategoryList.map(function (item, index) { 表示遍历productCategoryList商品类别,将其遍历放入到下拉框的控件中。

3、item和index 第一个参数是指当前元素,第二个参数是指索引

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 薛定谔的猫迷 #1
    那老师为什么两个方法都不把map(item,index)这样的格式写,把item写前面
    2020-03-08 19:12:19
  • 提问者 薛定谔的猫迷 #2
    $('.detail-img').map(function (index, item) { console.log(index) //判断该控件是否已经选择了文件 if ($('.detail-img')[index].files.length > 0) { //将第i个文件流赋值给key为productImg i的表单键里面 formData.append('productImg' + index, $('.detail-img')[index].files[0]); } }) 老师这一种index是指当前元素吗,item是索引吗
    2020-03-08 19:50:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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