Tableau multidimensionnel dans javasscript
J'apprends du livre JavaScript pour les nuls , et du code suivant, il est dit
console.log( bestAlbumsByGenre[0][1] ) //will output: Patsy Cline:Sentimentally Yours
var bestAlbumsByGenre = []
bestAlbumsByGenre[0] = “Country”;
bestAlbumsByGenre[0][0] = “Johnny Cash: Live at Folsom Prison”
bestAlbumsByGenre[0][1] = “Patsy Cline: Sentimentally Yours”;
bestAlbumsByGenre[0][2] = “Hank Williams: I’ m Blue Inside”;
Mais dans la console, la sortie est: "o". Pourquoi est-ce, et ce que je fais mal?
3 answers
Vous semblez avoir mélangé deux exercices différents. La ligne suivante entraîne l'erreur:
bestAlbumsByGenre[0] = "Country";
J'ai nettoyé le code pour le faire fonctionner.
Cependant, je pense que je préférerais un objet, où chaque touche représente le genre, et leur valeur est un tableau.
// Define the outer array
const bestAlbumsByGenre = [];
// Set the first element of the array as an array
bestAlbumsByGenre[0] = [];
// Add items to the first element (the array)
bestAlbumsByGenre[0][0] = "Johnny Cash: Live at Folsom Prison"
bestAlbumsByGenre[0][1] = "Patsy Cline: Sentimentally Yours";
bestAlbumsByGenre[0][2] = "Frank Williams: I’ m Blue Inside";
console.log(bestAlbumsByGenre[0][1]);
// Alternative approach
const reallyBestAlbumsByGenre = {
rock: [],
};
reallyBestAlbumsByGenre.rock.push("Johnny Cash: Live at Folsom Prison");
reallyBestAlbumsByGenre.rock.push("Patsy Cline: Sentimentally Yours");
reallyBestAlbumsByGenre.rock.push("Frank Williams: I’ m Blue Inside");
console.log( reallyBestAlbumsByGenre.rock[1] );
Puisque vous voulez organiser les albums par genre, il serait plus logique de créer un objet avec le genre comme clé:
var bestAlbumsByGenre = {
"Country": [
"Johnny Cash: Live at Folsom Prison",
"Patsy Cline: Sentimentally Yours",
"Hank Williams: I’m Blue Inside",
]
}
Vous n'accédez pas réellement à un tableau bidimensionnel, mais vous accédez au deuxième caractère d'une chaîne.
Vous initialisez un tableau de chaîne à 1 dimension lorsque vous faites:
Lorsque vous avez fait ce qui suit:
var bestAlbumsByGenre = [];
bestAlbumsByGenre[0] = "Country";
Vous avez affecté une chaîne au premier élément.
Par la suite, les autres déclarations n'ont rien fait.
Correction
Ce qui suit corrige votre erreur: "
var bestAlbumsByGenre = [[]]
bestAlbumsByGenre[0][0] = "Country";