我想让Javascript对象动态化

问题描述 投票:0回答:1

这是代码

var str = "Value1";

var str1 = "Value2";

var obj = {
  [str]: str1
};

console.log(obj);

我得到 obj 为

{
    Value1:"Value2"
}

但是我想要这个对象作为

{
    "Value1":"Value 2"
}

谁能解释一下这是怎么可能的?

javascript object
1个回答
-2
投票

首先你的代码:

var obj = {["Value1"]: "Value2"};
是错误的。你必须写:
var obj = {"Value1": "Value2"};
var obj = {Value1: "Value2"};

如果我理解正确的话:在你的评论中你写道:

我想要双引号中的 Value1 太动态意味着我也想要双引号中的动态索引

答案:

对象

{Value1:"Value2"}
{"Value1":"Value2"}
相同。区别在于仅在代码的显示(拼写、书写)中看到。

例如,如果执行以下代码,您将看不到差异:

var myObj1 = {"Value1":"Value2"};
var myObj2 = {Value1:"Value2"};

console.log(myObj1.Value1); //Value2
console.log(myObj2.Value1); //Value2

console.log(myObj1["Value1"]); //Value2
console.log(myObj2["Value1"]); //Value2

console.log(JSON.stringify(myObj1)); //{"Value1":"Value2"}
console.log(JSON.stringify(myObj2)); //{"Value1":"Value2"}

© www.soinside.com 2019 - 2024. All rights reserved.