Javascript 使用索引数组值设置JSON键
我试图通过基于另一个数组的字符串值自动设置JSON对象的键来填充JSON对象。比如说,Javascript 使用索引数组值设置JSON键,javascript,Javascript,我试图通过基于另一个数组的字符串值自动设置JSON对象的键来填充JSON对象。比如说, var test = ["a","b"] {test[0]:"A"} 但是,如果手动将值设置为第三行{“a”:“a”}中所示的字符串,则执行此操作时会出现语法错误。此问题不会发生。我检查了test[0]是否确实打印出“a”,其数据类型是字符串。发生这种情况有什么原因吗?请尝试以下方法: var测试=[“a”,“b”] var obj={ [测试[0]]:“A” }; 控制台日志(obj)请尝试以下操作:
var test = ["a","b"]
{test[0]:"A"}
但是,如果手动将值设置为第三行{“a”:“a”}
中所示的字符串,则执行此操作时会出现语法错误。此问题不会发生。我检查了test[0]
是否确实打印出“a”
,其数据类型是字符串。发生这种情况有什么原因吗?请尝试以下方法:
var测试=[“a”,“b”]
var obj={
[测试[0]]:“A”
};
控制台日志(obj)代码>请尝试以下操作:
var测试=[“a”,“b”]
var obj={
[测试[0]]:“A”
};
控制台日志(obj)
您是否尝试过{test:[“A”]}
?{[test[0]]:“A”}
结果是{A:“A”}
-将您的密钥括在括号中,否则它会试图将密钥写成test[0]
。。。您拥有的是一个对象文本。这与JSON无关。您正在寻找。“有什么原因会发生这种情况吗?”是的,x[y]
根本不是有效的语法来代替对象文本中的键。您是否尝试过{test:[“A”}
?{[test[0]]:“A”}
导致{A:“A”}
-将键括在括号中,否则,它将尝试将密钥写入test[0]
。。。您拥有的是一个对象文本。这与JSON无关。您正在寻找。“有什么原因可能会发生这种情况吗?”是的,x[y]
根本不是有效的语法来代替对象文本中的键。谢谢,这个解决方案很有效,您能解释一下为什么在这种情况下测试[0]周围的括号是必要的吗?它用于计算属性名称。仅供参考:谢谢,此解决方案有效,您能解释一下为什么在这种情况下测试[0]周围的括号是必要的吗?它用于计算属性名称。供参考: