У вас есть
music[0] = "Country";
и поэтому, когда вы попадете на эту строку:
music[0][0] = "JohnnyCash:Live at Folsom Prison"
music[0]
равно "Country"
(из-за более раннего назначения), поэтому music[0][0]
is "C"
и поскольку строки неизменяемы, присваивание music[0][0]
запрещено.
Если вы хотите иметь массив в music[0]
, вам нужно поместить туда массив, а не строку.
Вы можете сразу создать эту многомерную структуру:
var music = [
[
"JohnnyCash:Live at Folsom Prison",
"PatsyCline:Sentimentally Yours",
"HankWilliams:I'm Blue Inside"
],
[
"T-Rex:Slider",
"Nirvana:Nevermind",
"Lou Reed:Tranformer"
],
[
"Flipper:Generic",
"TheDeadMilkmen:Big Lizard in my Backyard",
"PattiSmith:Easter"
]
];
Вам нужно будет держать метки категорий ("Country"
и т. Д.) Отдельно.Одним из способов будет использование объектов:
var music = [
{
label: "Country",
entries: [
"JohnnyCash:Live at Folsom Prison",
"PatsyCline:Sentimentally Yours",
"HankWilliams:I'm Blue Inside"
]
},
{
label: "Rock",
entries: [
"T-Rex:Slider",
"Nirvana:Nevermind",
"Lou Reed:Tranformer"
]
},
{
label: "Punk",
entries: [
"Flipper:Generic",
"TheDeadMilkmen:Big Lizard in my Backyard",
"PattiSmith:Easter"
]
}
];
for (var i = 0; i < music.length; ++i) {
var category = music[i];
console.log(category.label + ":");
for (var j = 0; j < category.entries.length; ++j) {
console.log("* " + category.entries[j]);
}
}
/* Make the Stack Snippets console full size */
.as-console-wrapper {
max-height: 100% !important;
}
Или с использованием функций ES2015 +:
const music = [
{
label: "Country",
entries: [
"JohnnyCash:Live at Folsom Prison",
"PatsyCline:Sentimentally Yours",
"HankWilliams:I'm Blue Inside"
]
},
{
label: "Rock",
entries: [
"T-Rex:Slider",
"Nirvana:Nevermind",
"Lou Reed:Tranformer"
]
},
{
label: "Punk",
entries: [
"Flipper:Generic",
"TheDeadMilkmen:Big Lizard in my Backyard",
"PattiSmith:Easter"
]
}
];
for (const category of music) {
console.log(`${category.label}:`);
for (const entry of category.entries) {
console.log(`* ${entry}`);
}
}
/* Make the Stack Snippets console full size */
.as-console-wrapper {
max-height: 100% !important;
}