--- id: 587d8250367417b2b2512c5e title: Learn how a Stack Works challengeType: 1 videoUrl: '' localeTitle: Aprenda como funciona uma pilha --- ## Description
Você provavelmente está familiarizado com a pilha de livros em sua mesa. Você provavelmente usou o recurso de desfazer de um editor de texto. Você provavelmente também está acostumado a apertar o botão Voltar do seu telefone para voltar para a visualização anterior no seu aplicativo. Você sabe o que todos eles têm em comum? Todos eles armazenam os dados de uma maneira que você possa percorrer para trás. O livro mais alto na pilha foi o que foi colocado lá por último. Se você remover o livro do topo de sua pilha, exporia o livro que foi colocado antes do último livro e assim por diante. Se você pensar sobre isso, em todos os exemplos acima, você está recebendo o tipo de serviço Last-In-First-Out . Vamos tentar imitar isso com o nosso código. Esse esquema de armazenamento de dados é chamado de pilha . Em particular, nós teríamos que implementar o método push() que empurra objetos JavaScript no topo da pilha; e o método pop() , que remove o objeto JavaScript que está no topo da pilha no momento atual.
## Instructions
Aqui temos uma pilha de trabalhos de casa representados como um array: "BIO12" está na base, e "PSY44" está no topo da pilha. Modifique a matriz dada e trate-a como uma stack usando os métodos JavaScript mencionados acima. Remova o elemento superior "PSY44" da pilha. Em seguida, adicione "CS50" para ser o novo elemento superior da pilha.
## Tests
```yml tests: - text: homeworkStack deve conter apenas 4 elementos. testString: 'assert(homeworkStack.length === 4, "homeworkStack should only contain 4 elements.");' - text: O último elemento no homeworkStack "CS50" deve ser "CS50" . testString: 'assert(homeworkStack[3] === "CS50", "The last element in homeworkStack should be "CS50".");' - text: homeworkStack "PSY44" não deve conter "PSY44" . testString: 'assert(homeworkStack.indexOf("PSY44") === -1, "homeworkStack should not contain "PSY44".");' - text: A declaração inicial homeworkStack não deve ser alterada. testString: 'assert(code.match(/=/g).length === 1 && /homeworkStack\s*=\s*\["BIO12"\s*,\s*"HIS80"\s*,\s*"MAT122"\s*,\s*"PSY44"\]/.test(code), "The initial declaration of the homeworkStack should not be changed.");' ```
## Challenge Seed
```js var homeworkStack = ["BIO12","HIS80","MAT122","PSY44"]; // Only change code below this line ```
## Solution
```js // solution required ```