Javascript 在对象内的对象内创建数组

Javascript 在对象内的对象内创建数组,javascript,arrays,object,Javascript,Arrays,Object,使用Javascript,如何在对象内的对象内创建数组,以便将我的值存储在:main[1]。键入[1][0] 我已尝试过,但我的代码不起作用,如下所示: let main=[] main[1]={type:{1:['Value1','Value2']},{2:['Value3','Value4']}; console.log(主[1]。类型[0][1])您不会得到未定义的。您有一个语法错误。逗号应该是分隔数组值或分隔对象项。在对象中,这里有一个逗号,因此它后面应该有一个键,而不是{ main[

使用Javascript,如何在对象内的对象内创建数组,以便将我的值存储在:main[1]。键入[1][0]

我已尝试过,但我的代码不起作用,如下所示:

let main=[]
main[1]={type:{1:['Value1','Value2']},{2:['Value3','Value4']};

console.log(主[1]。类型[0][1])您不会得到未定义的
。您有一个语法错误。逗号应该是分隔数组值或分隔对象项。在对象中,这里有一个逗号,因此它后面应该有一个键,而不是
{

main[1] = {type: {1:['Value1', 'Value2']}, {2:['Value3', 'Value4']}};
                                         |
                                         |
                           Remove the } and { around this comma
删除逗号周围的
}
{
,使
{1:['Value1',Value2'],2:['Value3',Value4']}
成为具有两个键的单个对象:

const main=[];
main[1]={type:{1:['Value1','Value2'],2:['Value3','Value4']};

console.log(main[1]。键入[1][0]);
首先,您的声明是错误的,无法工作

{type:{},{}}
不是有效的JSON,必须将其包装到
[]
中才能创建对象数组
{type:[{},{}]}

另外,通过添加一个级别,您必须请求:
main[1]。键入[0][1][0]
以获取
Value1

let main=[]
main[1]={type:[{1:['Value1','Value2']},{2:['Value3','Value4']}};

console.log(main[1]。键入[0][1][0])
分解问题时,对象必须是“零对或多对属性名称和对象的关联值”。问题代码中的第二个值没有键,导致未捕获的
SyntaxError

下面是一个返回所需结果的对象文字:

const main = {
  1: {
    type: { 1: ['Value1', 'Value2'] },
    otherType: { 2: ['Value3', 'Value4'] },
  },
};

另一种选择是使用稀疏阵列:

let main=[,{type:[,['Value1','Value2'],['Value3','Value4']}];

console.log(main[1]。键入[1][0]);
您的问题是无法创建内部带有编号对象的对象。您必须使用数组表示法
var variableName=[/*此处用逗号分隔的变量值*/]

这将解决您的问题:

let main = []

main[1] = {
  type: [
    ['Value1', 'Value2'], 
    ['Value3', 'Value4']
  ]
};

console.log(main[1].type[0][1]);

您的
类型
属性值不能是两个逗号分隔的对象。但它可以是一个对象数组。当然,我们都必须问,为什么还要使用对象属性作为数字?它们将转换为字符串,因此您仍然无法依赖正确的顺序。使用实际数组索引来保持顺序。让我们澄清术语-您的问题是“对象中的对象中的数组”,但您的
main=[]
是数组,因此将其更改为“数组中的数组和数组中的对象”。您的
main[1]
(数组)确实包含一个对象;该对象只有一个名为
type
的成员。type的值是一个具有两个键的对象-这些键是
1
2
,使其看起来有点像数组,但它不是。1和2每个都包含一个数组(字符串)-那么您实际拥有什么(来自Paulpro的回答)是数组中的对象中的对象中的数组。@StephenP这是真的,但OP没有指定
main
的声明(该声明由其他人在中编辑),因此我们不知道
main
是数组还是OP的常规对象。无论哪种方式,
['Value1',Value2']
都是“对象[main]中的对象内的数组”JSON是不相关的,您的对象也不是有效的JSON。键必须是JSON中的字符串,所有字符串(键和值)都必须使用双引号作为分隔符。我们希望说JS boject而不是JSON,但在所有情况下,您的答案都更好。
let main = []

main[1] = {
  type: [
    ['Value1', 'Value2'], 
    ['Value3', 'Value4']
  ]
};

console.log(main[1].type[0][1]);