Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有ES6箭头函数的jQuery.each()函数_Javascript_Jquery_Ecmascript 6_Babeljs - Fatal编程技术网

Javascript 带有ES6箭头函数的jQuery.each()函数

Javascript 带有ES6箭头函数的jQuery.each()函数,javascript,jquery,ecmascript-6,babeljs,Javascript,Jquery,Ecmascript 6,Babeljs,我有这个ES6代码,当我用Babel编译成ES5后,这个在里面。每个的回调都变成未定义的。如何解决此问题 let mediaBoxes = $(".now-thumbnail"); let titles = []; mediaBoxes.each(() => { let obj = { index: i, title: $(this).find(".now-thumbnail-bottomtext").text().tri

我有这个ES6代码,当我用Babel编译成ES5后,
这个
里面。每个
的回调都变成
未定义的
。如何解决此问题

let mediaBoxes = $(".now-thumbnail");
let titles = [];
mediaBoxes.each(() => {
      let obj = {
              index: i,
              title: $(this).find(".now-thumbnail-bottomtext").text().trim()
           };
  titles.push(obj);
});

我的解决方案是根本不使用
这个
,而是使用传递给回调函数的变量。第一个是索引,第二个是DOM元素本身

 let mediaBoxes = $(".now-thumbnail");
 let titles = [];
 mediaBoxes.each((index, element) => {
                let obj = {
                    index: index,
                    title: $(element).find(".now-thumbnail-bottomtext").text().trim()
                };
                titles.push(obj);
 });

这是因为
的平均值在箭头函数中不同

箭头函数捕获封闭上下文的此值

函数将元素作为第二个参数传递给回调函数

但对你来说,一个更合适的解决方案是也使用而不是


我也这么想<代码>让标题=$('.now缩略图').map((索引,元素)=>({index:index,title:$(元素).find(“.now缩略图底部文本”).text().trim())).get()
@Tushar如果内容太大,那么我想把它分成一个块。我还想补充一点,这里不需要箭头函数,只是为了简洁的语法,没有返回任何内容。当
$(this)
将指向正确的元素时,可以使用匿名函数。@Tushar我会在心跳中向上投票。我认为箭在这里绝对没有好处。即使简洁是目标,编写
function()
的字符数也与
(i,el)=>
let mediaBoxes = $(".now-thumbnail");
let titles = mediaBoxes.map((i, el) => {
  return {
    index: i,
    title: $(el).find(".now-thumbnail-bottomtext").text().trim()
  };
}).get();