Advertisement
jaomarcos

#Ex070420

Apr 9th, 2020
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let options;
  2.  
  3. let list = []
  4.  
  5.  
  6. function MainMenu() {
  7.     while (options != 1 || options != 2 || options != 3 || options != 4 || options != 5) {
  8.         options = Number(prompt("Escolha uma opção\n" + "1-Cadastrar produto:\n" +
  9.             "2-Deletar produto:\n" +
  10.             "3-Editar produto:\n" +
  11.             "4-Ver produtos\n" +
  12.             "5-Imprimir lista de produtos"))
  13.         switch (options) {
  14.             case 1:
  15.                 return Products()
  16.             case 2:
  17.                 return Delete()
  18.             case 3:
  19.                 return Edit()
  20.             case 4:
  21.                 return ProductList()
  22.             case 5:
  23.                 return ToJson(list, "produto.json", 'text/plain')
  24.         }
  25.     }
  26. }
  27.  
  28. // Função para criar o objeto produto
  29. function Products() {
  30.     let name
  31.     let value
  32.     let company
  33.     let end
  34.     let products
  35.     while (end != 'FIM') {
  36.         try {
  37.             name = prompt("Informe o nome do produto:")
  38.             value = parseFloat(prompt("Informe o valor do produto:"))
  39.             if (isNaN(value)) {
  40.                 throw "Somente número"
  41.             } else if (value == null) {
  42.                 throw "Campo sem dados"
  43.             }
  44.             company = prompt("Informe a empresa que compra:")
  45.             products = { nome: name, valor: value, empresa: company }
  46.  
  47.  
  48.             // Semelhante ao booleano, caso me retorne 0 será igual ao true(ou seja, já existe este produto) e se me retornar -1 a condição é falsa, logo este produto ainda não existe
  49.             let equal = list.findIndex(item => {
  50.                 return (item.nome === name && item.valor === value && item.empresa === company)
  51.             })
  52.             // Confirmo que a função anterior tenha me retornado 0
  53.             if (equal > -1) {
  54.                 throw "OPS, ALGO ESTÁ SENDO REPETIDO"
  55.             } else {
  56.                 list.push(products)
  57.             }
  58.         } catch (err) {
  59.             console.log(err)
  60.         }
  61.         end = prompt("Digite FIM para sair ou Pressione Enter para continuar")
  62.     }
  63.     MainMenu()
  64. }
  65.  
  66.  
  67.  
  68. // Função para deletar
  69. function Delete() {
  70.     let remove = prompt("Qual produto voce deseja remover?")
  71.     list.forEach((element, index) => {
  72.         try {
  73.             if (remove == element.nome) {
  74.                 list.splice(index, 1)
  75.             } else {
  76.                 throw "Não é este aqui"
  77.             }
  78.         } catch (err) {
  79.             console.log(err)
  80.         }
  81.     })
  82.     MainMenu()
  83. }
  84.  
  85.  
  86. // Função para editar
  87. function Edit() {
  88.     let product = prompt("Qual produto vocẽ deseja alterar?")
  89.     list.forEach((element) => {
  90.         try {
  91.             if (product == element.nome) {
  92.                 let nome = prompt("Digite o novo nome:")
  93.                 element.nome = nome
  94.                 let valor = prompt("Digite o novo valor:")
  95.                 element.valor = valor
  96.                 let empresa = prompt("Digte o nome da empresa:")
  97.                 element.empresa = empresa
  98.             } else {
  99.                 throw "TENTA OUTRO PRODUTO MANITO, PQ ESTE NÃO EXISTE"
  100.             }
  101.         } catch(err) {
  102.             console.log(err)
  103.         }
  104.     })
  105.     MainMenu()
  106. }
  107.  
  108.  
  109. function ProductList() {
  110.     console.log(list)
  111.     MainMenu()
  112. }
  113.  
  114.  
  115. // Gerando arquivo JSON com o objeto "BLOB"
  116. function ToJson(content, fileName, contentType) {
  117.     let a = document.createElement("a")
  118.     let json = JSON.stringify(content)
  119.     let file = new Blob([json], {type: contentType})
  120.     a.href = URL.createObjectURL(file)
  121.     a.download = fileName
  122.     a.click()
  123. }
  124.  
  125. /* Usei o forEach pra percorrer o array principal(quando necessario) e capturei cada objeto interno e logo em seguida seus valores. Não havia estudado essa função nas aulas, foi de grande ajuda, pois ela percorre todo array e a partir disso eu consigo manipular os itens internos */
  126. MainMenu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement