Javascript 在二维数组中调用对象
如果我有一个像Javascript 在二维数组中调用对象,javascript,arrays,Javascript,Arrays,如果我有一个像 outerArray = [ middleArray1 = [ innerArray1 = ['data'], innerArray2 = ['more data'] ], middleArray2 = [ ...more stuff... ] ]; 如何访问javascript中的一个内部数组 是不是outerArray.middleArray1.innerArray1?首先,这是一种非常奇怪的
outerArray = [
middleArray1 = [
innerArray1 = ['data'],
innerArray2 = ['more data']
],
middleArray2 = [
...more stuff...
]
];
如何访问javascript中的一个内部数组
是不是
outerArray.middleArray1.innerArray1
?首先,这是一种非常奇怪的创建嵌套数组的方法,因为您可能无法访问数组名为'middleArray1'
的数组元素,我尝试过了,但没有效果。毕竟,数组将仅以这种格式提供
outerArray = [
[
['data'],
['more data']
],
[
...more stuff...
]
];
您仍然可以作为outerArray[0][0]
(innerArray1)或
outerArray[0][0][0]
(innerArray1的第一个元素)继续说下去
让我们将多维数组分解为多个级别
middleArray
为1级
middleArray->innerArray1
是2级
middleArray->innerArray1->value
为3级
数据
,您将有3个级别,表示3个[]
括号
例如:
var data=outerArray[0][0][0]
将输出数据
var moreData=outArray[0][0][1]
将输出更多数据
outerArray[0]
访问level1
上的第一个数组,即middleArray1
outerArray[1]
访问level1
上的第二个数组,即middleArray2
outerArray[0][0]
访问级别2
上的第一个数组,即内部数组1
等等。
仔细阅读,你的声明有点奇怪,正如TiiJ7所指出的。通常情况下,数组的数组更像这样:
const outerArray = [
[
[data],
[moredata]
],
[
// more stuff
]
]
您可以通过索引调用每个项目,如outerArray[0][0][0]
看起来你真正想要的是一个物体
const dataObj = {
middleObj1: {
innerObj1: [data],
innerObj2: [moredata]
},
middleObj2: {
// more stuff
}
}
这个函数可以通过键来调用,而不仅仅是索引。也就是说,您可以选择使用dataObj['middleObj1']['innerObj1'][0]或dataObj.middleObj1.innerObj1[0]
注意,在这两种情况下,我仍然以索引结束它。这是因为我在示例中保留了最里面的数组。可以在对象中嵌套数组。事实上,数组是JavaScript中一种特殊类型的对象。JavaScript只是使用通用对象而不是多维数组。您还没有真正告诉我们您在这里要做什么,但我怀疑您混淆了对象,这些对象使用
{}
并具有属性访问权限,如outerArray.middleArray1
,以及使用[]定义的数组
并通过索引访问:outeraray[0]
您可以选择这种工作方式,因为工作分配返回指定的值。这意味着:
middleArray1 = [
innerArray1 = ['data'],
innerArray2 = ['more data']
]
同:
middleArray1 = [['data'],['more data']]
副作用是innerarary1
和innerary2
被定义为全局变量。例如:
outerArray=[
中间阵列1=[
innerArray1=[“数据”],
innerArray2=['更多数据']
],
middleArray2=[
“……更多的东西……”
]
];
//日志全局变量innerArray1(可能不是您想要的)
console.log(innerArray1)
//访问第i个索引:
log(outerArray[0][0])
在您的例子中,它实际上只是inneraray1
。但这是因为你的定义很奇怪(你在数组定义中赋值)。你的“东西”实际上是一个3D数组,如果它是一个的话,因为它看起来更像是一个对象。在你的例子中,你可以在你的“中间数组”中用索引访问它,比如outerArray[0]。。。。outerArray[N-1],但您的语法是。。。奇怪的是你是这样定义数据的?如果是这样,你应该认真地重新考虑。如果您试图用这种格式简单地描述数组结构,请看一看如何创建数组并用实际代码编辑问题。这将更有可能为您的问题提供一个有用的答案。您应该去掉数组中的命名/赋值部分(middleArray1=…
),因为它将以索引结束。谢谢,这正是我需要的!是的,我像你说的那样把东西混在一起了。