2.5 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d7b87367417b2b2512b42 | Mutare un array dichiarato con const | 1 | 301206 | mutate-an-array-declared-with-const |
--description--
Se non hai familiarità con const, controlla questa sfida che parla della parola chiave const.
La dichiarazione const ha molti casi di utilizzo nel JavaScript moderno.
Alcuni sviluppatori preferiscono assegnare tutte le loro variabili usando const come impostazione predefinita, a meno che non sappiano di doverne riassegnare il valore. Solo in quel caso usano let.
Tuttavia, è importante capire che gli oggetti (inclusi gli array e le funzioni) assegnati a una variabile utilizzando const sono ancora mutabili. L'utilizzo della dichiarazione const impedisce solo la riassegnazione dell'identificatore della variabile.
const s = [5, 6, 7];
s = [1, 2, 3];
s[2] = 45;
console.log(s);
s = [1, 2, 3] comporterà un errore. Dopo aver trasformato la riga in un commento, il console.log mostrerà il valore [5, 6, 45].
Come puoi vedere, puoi mutare l'oggetto [5, 6, 7] stesso e la variabile s punterà ancora all'array alterato [5, 6, 45]. Come tutti gli array, gli elementi in s sono mutabili, ma poiché è stata usata const, non è possibile utilizzare l'identificatore di variabile s per puntare ad un array diverso utilizzando l'operatore di assegnazione.
--instructions--
Un array è dichiarato come const s = [5, 7, 2]. Cambia l'array in [2, 5, 7] usando varie assegnazioni di elementi.
--hints--
Non dovresti sostituire la parola chiave const.
assert(__helpers.removeJSComments(code).match(/const/g));
s dovrebbe essere una variabile costante (usando const).
assert(__helpers.removeJSComments(code).match(/const\s+s/g));
Non dovresti cambiare la dichiarazione originale dell'array.
assert(__helpers.removeJSComments(code).match(
/const\s+s\s*=\s*\[\s*5\s*,\s*7\s*,\s*2\s*\]\s*;?/g
));
s dovrebbe essere uguale a [2, 5, 7].
assert.deepEqual(s, [2, 5, 7]);
--seed--
--seed-contents--
const s = [5, 7, 2];
function editInPlace() {
// Only change code below this line
// Using s = [2, 5, 7] would be invalid
// Only change code above this line
}
editInPlace();
--solutions--
const s = [5, 7, 2];
function editInPlace() {
s[0] = 2;
s[1] = 5;
s[2] = 7;
}
editInPlace();