使用动态变量映射javascript键

使用动态变量映射javascript键,javascript,jquery,Javascript,Jquery,cover\u或\u contain[1]这将只返回对象{2:“contain”},如何仅获取“contain”?我不能用键映射覆盖或包含[var]。考虑将其更改为此 var cover_or_contain = [ {1: "cover"}, {2: "contain"}, {3: "contain"}, {4: "contain"} ]; 然后,您可以通过其键号进行访问,如cover\u或\u contain[1] 如果您仍然想使用您的符号,您可以通过cov

cover\u或\u contain[1]
这将只返回对象
{2:“contain”}
,如何仅获取“contain”?我不能用键映射
覆盖或包含[var]

考虑将其更改为此

var cover_or_contain = [
    {1: "cover"},
    {2: "contain"},
    {3: "contain"},
    {4: "contain"}
];
然后,您可以通过其键号进行访问,如
cover\u或\u contain[1]

如果您仍然想使用您的符号,您可以通过
cover\u或\u contain[var-1][var]

编辑: 由于对象来自外部源,您可能希望首先将其转换为更方便的格式

var cover_or_contain = {
    1: "cover",
    2: "contain",
    3: "contain",
    4: "contain"
};
函数转换(数据){
var ret={};
对于(变量i=0;i
考虑将此更改为

var cover_or_contain = [
    {1: "cover"},
    {2: "contain"},
    {3: "contain"},
    {4: "contain"}
];
然后,您可以通过其键号进行访问,如
cover\u或\u contain[1]

如果您仍然想使用您的符号,您可以通过
cover\u或\u contain[var-1][var]

编辑: 由于对象来自外部源,您可能希望首先将其转换为更方便的格式

var cover_or_contain = {
    1: "cover",
    2: "contain",
    3: "contain",
    4: "contain"
};
函数转换(数据){
var ret={};
对于(变量i=0;i
无需转换为数组;只需使用:


Object.values()
返回一个数组,因此尾部的
[0]

不需要转换为数组;只需使用:


Object.values()
返回一个数组,因此后面的
[0]

使用此覆盖或包含[1][2]

> Object.values(cover_or_contain[1])[0]
'contain'

变量覆盖或包含=[
{1:“封面”},
{2:“包含”},
{3:“包含”},
{4:“包含”}
];
控制台日志(封面或包含[1][2]);

使用此封面或包含[1][2]

> Object.values(cover_or_contain[1])[0]
'contain'

变量覆盖或包含=[
{1:“封面”},
{2:“包含”},
{3:“包含”},
{4:“包含”}
];
控制台日志(封面或包含[1][2]);

我不能更改数组格式,它是一个外部源我添加了一个函数将其转换为其他格式,希望它有帮助我不能更改数组格式,它是一个外部源我添加了一个函数将其转换为其他格式,希望它有帮助如果您需要使用键映射大量数据,我会将该外部数组转换为对象,就像@escepta建议的那样,然后对该对象进行操作。否则,如果您需要旧的浏览器支持,只需使用函数或编写函数即可。如果您需要使用键映射大量数据,我会将该外部数组转换为一个对象,如@escepta所建议的,然后对该对象进行操作。否则,如果您需要更老的浏览器支持,只需使用函数或编写函数即可。更简洁。更简洁。@MariaJane我不明白。在获取之前,无需将属性值转换为数组。@t–nNguỹn这就是我对Borna的答案发表评论的原因;它值得一次投票。@MariaJane我不明白。在获得之前,不需要将属性的值转换为数组。@t–nNguỹn这就是我对Borna的答案发表评论的原因;它值得投票表决。