Javascript 在对象内的对象内创建数组
使用Javascript,如何在对象内的对象内创建数组,以便将我的值存储在:main[1]。键入[1][0] 我已尝试过,但我的代码不起作用,如下所示: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[
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]);