我正在从 Dummies的JavaScript 一书中学习,并从下面的代码中学习
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”;
,但在控制台中,输出为:“ o”。为什么会这样,我在做什么错了?
答案 0 :(得分:2)
您似乎混合了两种不同的练习。 以下行导致错误:
bestAlbumsByGenre[0] = "Country";
我已经清理了代码以使其正常工作。
但是,我想我更喜欢一个对象,其中每个键都代表流派,其值是一个数组。
// 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] );
答案 1 :(得分:0)
您实际上并没有访问二维数组,但是您正在访问字符串的第二个字符。
您正在执行以下操作来初始化字符串的一维数组:
执行以下操作时:
var bestAlbumsByGenre = [];
bestAlbumsByGenre[0] = "Country";
您为第一个元素分配了一个字符串。
随后,其他语句什么也没做。
以下内容可修复您的错误:”
var bestAlbumsByGenre = [[]]
bestAlbumsByGenre[0][0] = "Country";
答案 2 :(得分:0)
由于您要按流派来组织专辑,因此以流派为键来创建对象会更有意义:
var bestAlbumsByGenre = {
"Country": [
"Johnny Cash: Live at Folsom Prison",
"Patsy Cline: Sentimentally Yours",
"Hank Williams: I’m Blue Inside",
]
}