Javascript中的多维数组

时间:2018-09-18 14:35:24

标签: javascript multidimensional-array

我正在从 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”。为什么会这样,我在做什么错了?

3 个答案:

答案 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",
    ]
}