在javascript中创建和访问二维数组

在javascript中创建和访问二维数组,javascript,multidimensional-array,Javascript,Multidimensional Array,我对如何在javascript中创建和访问二维数组感到困惑。下面是一个数组声明,我在其中存储人名,然后存储他们图像的src。当我尝试访问myArray[0][0]元素时,我得到了“D”,当我尝试访问myArray[0,0]时,我得到了唐老鸭。如何访问img src myArray[0][0]=“assets/scrybe.jpg” JS代码: var myArray = new Array(1); myArray[0] = "Donald Duck"; myArray[1] = "Winnie

我对如何在javascript中创建和访问二维数组感到困惑。下面是一个数组声明,我在其中存储人名,然后存储他们图像的src。当我尝试访问myArray[0][0]元素时,我得到了“D”,当我尝试访问myArray[0,0]时,我得到了唐老鸭。如何访问img src myArray[0][0]=“assets/scrybe.jpg”

JS代码:

var myArray = new Array(1);

myArray[0] = "Donald Duck";
myArray[1] = "Winnie Pooh";
myArray[2] = "Komal Waseem";
myArray[3] = "Hockey";
myArray[4] = "Basketball";
myArray[5] = "Shooting";
myArray[6] = "Mickey Mouse";

myArray[0][0] = "assets/scrybe.jpg";
myArray[1][0] = "assets/scrybe.jpg";
myArray[2][0] = "assets/scrybe.jpg";
myArray[3][0] = "assets/scrybe.jpg";
myArray[4][0] = "assets/scrybe.jpg";
myArray[5][0] = "assets/scrybe.jpg";
myArray[6][0] = "assets/scrybe.jpg";

也许您真正想要的是一组对象:

var myArrray = [
  { name: "Donald Duck", image: "assets/scrybe.jpg" },
  { name: "Winnie Pooh", image: "assets/scrybe.jpg" },
  // ...
];
JavaScript实际上没有二维数组。您可以做的是创建一个数组,使每个元素也是一个数组

var twoDim = [ [], [], [], [], [] ];
var myArray = [
    [], [] // two arrays
];

然而,就你的情况而言,我认为这种结构不会有多大帮助。

不,不能这样做。必须执行以下任一操作:

var myArray = new Array(1);

myArray[0] = new Array(1);

myArray[0][0] = "Donald Duck";
myArray[0][1] = "assets/scrybe.jpg";
或者使用JS语法

var myJSObj = {"Donald" :"assets/scrybe.jpg", "Donald2": "assets/scrybe2.jpg" };

首先,要创建数组,最好使用方括号表示法(
[]
):

这是在JavaScript中模拟多维数组的方式。它是一个数组中的一个或多个数组

var twoDim = [ [], [], [], [], [] ];
var myArray = [
    [], [] // two arrays
];
如果你问是否有方法将数组声明为多维数组,那么没有。您可以这样访问它们:

myArray[0][0]; // the 1st element of the first array in myArray
myArray[1][1]; // the 2nd element of the second array in myArray
以下是您可能正在查找的代码:

var myArray = [
    ["Donald Duck", "assets/scrybe.jpg"],
    ["Winnie Pooh", "assets/scrybe.jpg"],
    ["Komal Waseem", "assets/scrybe.jpg"]
    [/* and so on...*/]
];
但是,由于您为所有名称提供了相同的URL,因此您可以使用
for
循环来更快地执行此操作:

for (var i = 0; i < myArray.length; i++) {
    myArray[i][1]  = "assets/scrybe.jpg";
}
for(var i=0;i
我也有同样的问题,我使用了Lodash的minBy


我认为你不需要二维数组。我认为您需要一个对象数组,这样每个对象都有一个“名称”和一个“图像”属性。您实际上要做的是
“Donald Duck”[0]=“assets/scrybe.jpg”
-这显然不能很好地回答对象数组,但却没有回答如何访问它们。@JackTheKnife??使用
[]
运算符访问数组元素的方式与访问任何数组元素的方式相同。@0x499602D2如果您有机会告诉我们如何访问数组长度或大小或其他选项。我按照你的建议创建了一个维度数组。但是,我无法访问数组的长度。有什么建议吗<代码>var GENRearay#计数器#=[[],[];GenreArray#counter#[#i#]=“#Title#”;对于(var i=0;i