From 5ed217504e57aa996241978da6764a81ec3bef4a Mon Sep 17 00:00:00 2001 From: Jorge William Cardoso Furtado Date: Thu, 10 Dec 2020 10:14:49 -0300 Subject: [PATCH 1/2] Exercicios bloco - 8 --- 8-1/exercicio-1.js | 74 +++++++++++++++++++++++++++++ 8-1/exercicio-2.js | 81 +++++++++++++++++++++++++++++++ 8-1/exercicio-3.js | 83 ++++++++++++++++++++++++++++++++ 8-1/exercicio-4.js | 116 +++++++++++++++++++++++++++++++++++++++++++++ 8-1/exercicio-5.js | 73 ++++++++++++++++++++++++++++ 8-1/exercicio-6.js | 73 ++++++++++++++++++++++++++++ 6 files changed, 500 insertions(+) create mode 100644 8-1/exercicio-1.js create mode 100644 8-1/exercicio-2.js create mode 100644 8-1/exercicio-3.js create mode 100644 8-1/exercicio-4.js create mode 100644 8-1/exercicio-5.js create mode 100644 8-1/exercicio-6.js diff --git a/8-1/exercicio-1.js b/8-1/exercicio-1.js new file mode 100644 index 0000000..95f024a --- /dev/null +++ b/8-1/exercicio-1.js @@ -0,0 +1,74 @@ +// Encontre o nome da primeira pessoa autora do livro nascida no ano de 1947. + +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +function authorBornIn1947() { + // escreva aqui o seu código + return books.find(book => book.author.birthYear === 1947).author.name; + +} +console.log(authorBornIn1947()); +// assert.strictEqual(authorBornIn1947(), 'Stephen King'); \ No newline at end of file diff --git a/8-1/exercicio-2.js b/8-1/exercicio-2.js new file mode 100644 index 0000000..74e3544 --- /dev/null +++ b/8-1/exercicio-2.js @@ -0,0 +1,81 @@ +// Retorne o nome do livro de menor nome. + + +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +function smallerName() { + let nameBook; + // escreva aqui o seu código + books.forEach((book) => { + if (!nameBook || book.name.length < nameBook.length) { + nameBook = book.name; + } + }); + // Variável nameBook que receberá o valor do menor nome; + return nameBook; +} + +assert.strictEqual(smallerName(), 'Duna'); \ No newline at end of file diff --git a/8-1/exercicio-3.js b/8-1/exercicio-3.js new file mode 100644 index 0000000..d4bf322 --- /dev/null +++ b/8-1/exercicio-3.js @@ -0,0 +1,83 @@ +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +const expectedResult = { + author: { + birthYear: 1948, + name: 'George R. R. Martin' + }, + genre: 'Fantasia', + id: 1, + name: 'As Crônicas de Gelo e Fogo', + releaseYear: 1991 +}; +// Encontre o primeiro livro cujo nome possui 26 caracteres. +function getNamedBook() { + // escreva seu código aqui + return books.find((element) => element.name.length === 26); + +} + +assert.deepStrictEqual(getNamedBook(), expectedResult); \ No newline at end of file diff --git a/8-1/exercicio-4.js b/8-1/exercicio-4.js new file mode 100644 index 0000000..879cdeb --- /dev/null +++ b/8-1/exercicio-4.js @@ -0,0 +1,116 @@ +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +const expectedResult = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { name: 'George R. R. Martin', birthYear: 1948 }, + releaseYear: 1991 + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { name: 'Stephen King', birthYear: 1947 }, + releaseYear: 1986 + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { name: 'Frank Herbert', birthYear: 1920 }, + releaseYear: 1965 + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { name: 'J. R. R. Tolkien', birthYear: 1892 }, + releaseYear: 1954 + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { name: 'Isaac Asimov', birthYear: 1920 }, + releaseYear: 1951 + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { name: 'H. P. Lovecraft', birthYear: 1890 }, + releaseYear: 1928 + } +]; +// Ordene os livros por data de lançamento em ordem decrescente. +function booksOrderedByReleaseYearDesc() { + // escreva aqui seu código + return books.sort((elementA, elementB) => elementB.releaseYear - elementA.releaseYear); +} + +assert.deepStrictEqual(booksOrderedByReleaseYearDesc(), expectedResult); \ No newline at end of file diff --git a/8-1/exercicio-5.js b/8-1/exercicio-5.js new file mode 100644 index 0000000..10cab9b --- /dev/null +++ b/8-1/exercicio-5.js @@ -0,0 +1,73 @@ +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +const expectedResult = false +// Faça uma função que retorne true , se todas as pessoas autoras nasceram no século XX, ou false , caso contrário. +function everyoneWasBornOnSecXX() { + // escreva seu código aqui + return books.every((element) => element.author.birthYear > 1901 && element.author.birthYear <= 2000) +} + +assert.strictEqual(everyoneWasBornOnSecXX(), expectedResult); \ No newline at end of file diff --git a/8-1/exercicio-6.js b/8-1/exercicio-6.js new file mode 100644 index 0000000..74fdcce --- /dev/null +++ b/8-1/exercicio-6.js @@ -0,0 +1,73 @@ +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +const expectedResult = true +// Faça uma função que retorne true , se algum livro foi lançado na década de 80, e false , caso contrário. +function someBookWasReleaseOnThe80s() { + // escreva seu código aqui + return books.some(element => element.releaseYear >= 1980 && element.releaseYear <= 1989) +} + +assert.strictEqual(someBookWasReleaseOnThe80s(), expectedResult); \ No newline at end of file From f098795a5e3e0af1f4891463feb0bd3a8b64563e Mon Sep 17 00:00:00 2001 From: Jorge William Cardoso Furtado Date: Mon, 14 Dec 2020 21:52:01 -0300 Subject: [PATCH 2/2] Ultimo envio --- 8-1/exercicio-6.js | 2 +- 8-1/exercicio-7.js | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 8-1/exercicio-7.js diff --git a/8-1/exercicio-6.js b/8-1/exercicio-6.js index 74fdcce..f3750ec 100644 --- a/8-1/exercicio-6.js +++ b/8-1/exercicio-6.js @@ -67,7 +67,7 @@ const expectedResult = true // Faça uma função que retorne true , se algum livro foi lançado na década de 80, e false , caso contrário. function someBookWasReleaseOnThe80s() { // escreva seu código aqui - return books.some(element => element.releaseYear >= 1980 && element.releaseYear <= 1989) + return books.some(element => element.releaseYear >= 1980 && element.releaseYear <= 1989); } assert.strictEqual(someBookWasReleaseOnThe80s(), expectedResult); \ No newline at end of file diff --git a/8-1/exercicio-7.js b/8-1/exercicio-7.js new file mode 100644 index 0000000..eca6180 --- /dev/null +++ b/8-1/exercicio-7.js @@ -0,0 +1,79 @@ +const assert = require('assert'); + +const books = [ + { + id: 1, + name: 'As Crônicas de Gelo e Fogo', + genre: 'Fantasia', + author: { + name: 'George R. R. Martin', + birthYear: 1948 + }, + releaseYear: 1991, + }, + { + id: 2, + name: 'O Senhor dos Anéis', + genre: 'Fantasia', + author: { + name: 'J. R. R. Tolkien', + birthYear: 1892, + }, + releaseYear: 1954, + }, + { + id: 3, + name: 'Fundação', + genre: 'Ficção Científica', + author: { + name: 'Isaac Asimov', + birthYear: 1920, + }, + releaseYear: 1951, + }, + { + id: 4, + name: 'Duna', + genre: 'Ficção Científica', + author: { + name: 'Frank Herbert', + birthYear: 1920, + }, + releaseYear: 1965, + }, + { + id: 5, + name: 'A Coisa', + genre: 'Terror', + author: { + name: 'Stephen King', + birthYear: 1947 + }, + releaseYear: 1986, + }, + { + id: 6, + name: 'O Chamado de Cthulhu', + genre: 'Terror', + author: { + name: 'H. P. Lovecraft', + birthYear: 1890, + }, + releaseYear: 1928, + }, +]; + +const expectedResult = false; +// escreva seu código aqui + +// Faça uma função que retorne true , caso nenhum author tenha nascido no mesmo ano, e false , caso contrário. +function authorUnique() { + return books.every((book) => + !books.some((bookSome) => + (bookSome.author.birthYear === book.author.birthYear) && (bookSome.author.name !== book.author.name) + )); +} + + +assert.strictEqual(authorUnique(), expectedResult); +