freeCodeCamp/curriculum/challenges/italian/02-javascript-algorithms-an.../basic-data-structures/access-property-names-with-...

2.7 KiB

id title challengeType forumTopicId dashedName
587d7b7c367417b2b2512b1a Accedere ai nomi delle proprietà con la notazione a parentesi 1 301150 access-property-names-with-bracket-notation

--description--

Nella prima sfida sugli oggetti abbiamo menzionato l'uso della notazione a parentesi come modo per accedere ai valori delle proprietà utilizzando la valutazione di una variabile. Per esempio, immagina che il nostro oggetto foods venga utilizzato in un programma per il registratore di cassa di un supermercato. Abbiamo una funzione che imposta selectedFood e vogliamo controllare se nel nostro oggetto foods è presente quel cibo. Questo potrebbe apparire così:

let selectedFood = getCurrentFood(scannedItem);
let inventory = foods[selectedFood];

Questo codice valuterà il valore memorizzato nella variabile selectedFood e restituirà il valore di quella proprietà nell'oggetto foods, oppure undefined se non è presente. La notazione a parentesi è molto utile perché a volte le proprietà dell'oggetto non sono note prima dell'esecuzione o abbiamo bisogno di accedervi in modo più dinamico.

--instructions--

Abbiamo definito una funzione, checkInventory, che riceve un elemento scansionato come argomento. Restituisci il valore corrente della proprietà scannedItem nell'oggetto foods. Puoi supporre che saranno fornite come argomento solo chiavi valide per checkInventory.

--hints--

checkInventory dovrebbe essere una funzione.

assert.strictEqual(typeof checkInventory, 'function');

L'oggetto foods dovrebbe avere solo le seguenti coppie di proprietà-valori: apples: 25, oranges: 32, plums: 28, bananas: 13, grapes: 35, strawberries: 27.

assert.deepEqual(foods, {
  apples: 25,
  oranges: 32,
  plums: 28,
  bananas: 13,
  grapes: 35,
  strawberries: 27
});

checkInventory("apples") dovrebbe restituire 25.

assert.strictEqual(checkInventory('apples'), 25);

checkInventory("bananas") dovrebbe restituire 13.

assert.strictEqual(checkInventory('bananas'), 13);

checkInventory("strawberries") dovrebbe restituire 27.

assert.strictEqual(checkInventory('strawberries'), 27);

--seed--

--seed-contents--

let foods = {
  apples: 25,
  oranges: 32,
  plums: 28,
  bananas: 13,
  grapes: 35,
  strawberries: 27
};

function checkInventory(scannedItem) {
  // Only change code below this line

  // Only change code above this line
}

console.log(checkInventory("apples"));

--solutions--

let foods = {
  apples: 25,
  oranges: 32,
  plums: 28,
  bananas: 13,
  grapes: 35,
  strawberries: 27
};

function checkInventory(scannedItem) {
  return foods[scannedItem];
}