Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

[OFF TOPIC] - Limpando o código com ES6 funcional ( AULA 5 - O Menu de Cursos)

Como o Douglas falou, temos sempre a opção de usar ES6 para trabalhar em nosso código.

ATUAL:

const data = require('./data');

module.exports = {
    geraTrayTemplate() {
        let template = [
            { 'label': 'Cursos' },
            { type: 'separator' }
        ];

        // pegando o nome de todos os cursos
        let cursos = data.pegaNomeDosCursos();
        cursos.forEach((curso) => {
            let menuItem = {
                label: curso,
                type: 'radio'
            }
            template.push(menuItem);
        });
        return template;
    }
}

NOVO:

const { Menu } = require('electron');
const data = require('./data');

// isolamos transformação do item de menu

const setCursoItem = (curso) => ({
  label: curso,
  type: 'radio',
})

module.exports = {
  geraTrayTemplate() {

    return Menu.buildFromTemplate([
      { label: 'Cursos' },
      { type: 'separator' },
      ...data.pegaNomeDosCursos().map(setCursoItem) // *
    ]);

  }
}
//*
    ...data.pegaNomeDosCursos().map(setCursoItem)

map é uma high order function, logo ela e capaz de chamar a função 'setCursoItem', e com o '...' spred nós adicionamos todos os itens do array retornado dentod do array de buildFromTemplate

2 respostas

Opa Jefferson, obrigado por compartilhar!

solução

Um pouco mais do ES6 nos cursos do Flávio Almeida

https://cursos.alura.com.br/career/engenheiro-javascript

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software