Bracketball pt-br Explainer

Explicação de Bracketball

Objetivo do desafio: Use notação de colchetes para acessar a propriedade de um objeto.

Passo a passo da solução: Até agora, você usou apenas a notação de pontos para acessar propriedades em um objeto. Por exemplo:


let dog = {

name: 'maisie'

age: 14

};

console.log(dog.age)

A notação de colchete é outra forma de acessar a mesma propriedade. Acessando dog.age na notação de colchetes pareceria dog['age'], com o nome da propriedade escrita como uma string dentro dos colchetes.

Por que usar notação de colchetes?

Geralmente, é preferível a notação de pontos. Entretanto, a notação de colchete permite o uso de uma variável dentro dos parênteses, que não funciona com a notação de pontos.

Por exemplo:


let dog = {}

let variable = 'age';

console.log(dog[variable])

Este código é o mesmo que escrever dog['age'], pois a variable contém a string 'age'.

Entretanto, ele não funciona:


let dog = {}

let variable = 'age';

console.log(dog.variable)

Isto imprimirá undefined, porque o código está procurando uma propriedade em dog chamada variable, que não existe.

Neste desafio, use a notação de colchete com a variável letter para adicionar novas propriedades a obj.

Isso cria uma nova propriedade em obj usando a variável letter como nome da propriedade. Em seguida, armazena o valor de i nesta propriedade.

Se a string importada tiver o valor 'juice', então obj será assim:


{

j: 0,

u: 1,

i: 2,

c: 3,

e: 4

}

Solução do código de exemplo:


import { obj, string } from 'grasshopper.data';

for (let i = 0; i < string.length; i++) {

let letter = string[i];

obj[letter] = i;

}

for (let property in obj) {

console.log(property + ': ' + obj[property]);

}

Conceitos de JavaScript: Objetos, Notação de colchete, Propriedades

Código Adicional (código oculto executado antes do código do desafio):


let obj = {};

let string = pickRandom(['dog', 'cat', 'radio', 'music', 'gather', 'honest', 'taco', 'water', 'juice']);

1 Like

Meu código está igual ao do exemplo porém na versão pra celular não roda o programa. Informa que ainda falta dentro do {} do laço for clássico o obj[letter=i].

não consegue tirar o i dos “[]” ?

1 Like

Abaixo da declaração let letter: string[i];
Só escreva , obj[letter]=i;
Só isso. Ok

Só isso aí que se pede. :yawning_face:

Muito boa explicação!!

Olá. Boa noite a todos

Achei que aqui fosse:

Resolução do desafio.

Mas qual desafio?
:point_down:
Use NOTAÇÃO DE COLCHETES PARA ACESSAR UMA PROPRIEDADE DE UM OBJETO.

Mas o pessoal, mistura tudo.

Já está em carta.

Minha bronca é ref.
:point_down:
NOTAÇÃO DE COLCHETES COM OBJETO

Como colocar um Colchete [ ] se ele NÃO FICA ATIVO.

             { } Chave

Atenção: [ ] Colchete
( ) Parêntese

Pedem p/ selecionar. Mas selecionar o que?
Se não admite cópia e cola.

Ou eles querem que selecione

O que está disponível. Conforme o print
a) let
b) animal
c) num
d) str aqui admite [ ]. Mas dentro de string.
e) { } seria bom se fosse colchetes. Mas NÃO É!

Não disponível : INATIVADO

  1. <.name
  2. <.=
  3. <. [ ]

E o que eles querem?

MISSÃO IMPOSSÍVEL
:point_down:
NOTAÇÃO DE COLCHETES COM OBJETO

MISSÃO POSSÍVEL
Tirar leite de pedra.!


É porque você está tentando adicionar no lugar errado.
Adicione a propriedade na última linha do código.

Adicione por exemplo
animal [‘cor’] = ‘caramelo’

Ele vai adicionar ao objeto animal a propriedade cor com o valor caramelo

Alguém consegue me explicar o passo a passo que este programa executa? @discobot
Eu não consegui entender como ele consegue imprimir cada uma das propriedades e seu valor. Pra mim um for teria que estar dentro do outro para imprimir letra a letra