Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let options;
- let list = []
- function MainMenu() {
- while (options != 1 || options != 2 || options != 3 || options != 4 || options != 5) {
- options = Number(prompt("Escolha uma opção\n" + "1-Cadastrar produto:\n" +
- "2-Deletar produto:\n" +
- "3-Editar produto:\n" +
- "4-Ver produtos\n" +
- "5-Imprimir lista de produtos"))
- switch (options) {
- case 1:
- return Products()
- case 2:
- return Delete()
- case 3:
- return Edit()
- case 4:
- return ProductList()
- case 5:
- return ToJson(list, "produto.json", 'text/plain')
- }
- }
- }
- // Função para criar o objeto produto
- function Products() {
- let name
- let value
- let company
- let end
- let products
- while (end != 'FIM') {
- try {
- name = prompt("Informe o nome do produto:")
- value = parseFloat(prompt("Informe o valor do produto:"))
- if (isNaN(value)) {
- throw "Somente número"
- } else if (value == null) {
- throw "Campo sem dados"
- }
- company = prompt("Informe a empresa que compra:")
- products = { nome: name, valor: value, empresa: company }
- // 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
- let equal = list.findIndex(item => {
- return (item.nome === name && item.valor === value && item.empresa === company)
- })
- // Confirmo que a função anterior tenha me retornado 0
- if (equal > -1) {
- throw "OPS, ALGO ESTÁ SENDO REPETIDO"
- } else {
- list.push(products)
- }
- } catch (err) {
- console.log(err)
- }
- end = prompt("Digite FIM para sair ou Pressione Enter para continuar")
- }
- MainMenu()
- }
- // Função para deletar
- function Delete() {
- let remove = prompt("Qual produto voce deseja remover?")
- list.forEach((element, index) => {
- try {
- if (remove == element.nome) {
- list.splice(index, 1)
- } else {
- throw "Não é este aqui"
- }
- } catch (err) {
- console.log(err)
- }
- })
- MainMenu()
- }
- // Função para editar
- function Edit() {
- let product = prompt("Qual produto vocẽ deseja alterar?")
- list.forEach((element) => {
- try {
- if (product == element.nome) {
- let nome = prompt("Digite o novo nome:")
- element.nome = nome
- let valor = prompt("Digite o novo valor:")
- element.valor = valor
- let empresa = prompt("Digte o nome da empresa:")
- element.empresa = empresa
- } else {
- throw "TENTA OUTRO PRODUTO MANITO, PQ ESTE NÃO EXISTE"
- }
- } catch(err) {
- console.log(err)
- }
- })
- MainMenu()
- }
- function ProductList() {
- console.log(list)
- MainMenu()
- }
- // Gerando arquivo JSON com o objeto "BLOB"
- function ToJson(content, fileName, contentType) {
- let a = document.createElement("a")
- let json = JSON.stringify(content)
- let file = new Blob([json], {type: contentType})
- a.href = URL.createObjectURL(file)
- a.download = fileName
- a.click()
- }
- /* 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 */
- MainMenu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement