Função jQuery .each () com funções de seta ES6

Eu tenho este código ES6, depois de compilá-lo com o Babel para ES5 dentro this , a chamada de volta se torna undefined . Como faço para corrigir esse problema?

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

Minha solução é não usar this , mas use as variables ​​que são passadas para a function de retorno de chamada. O primeiro é o índice e o segundo fornece o próprio elemento 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); }); 

Isso porque a média this não é a mesma em funções de seta.

isto

As funções de seta capturam o valor desse contexto,

A function each () passa o elemento como o segundo argumento para o retorno de chamada.

Mas uma solução mais apropriada para você será usar também .map () ao invés de cada ()

 let mediaBoxes = $(".now-thumbnail"); let titles = mediaBoxes.map((i, el) => { return { index: i, title: $(el).find(".now-thumbnail-bottomtext").text().trim() }; }).get(); 
    Intereting Posts