JavaScript似乎将我的变量转换为其名称

时间:2017-11-03 04:01:57

标签: javascript

我想将以下JSON发送到服务器:

{"active": "true"}

我尝试这样做:

 axios.patch('/api/musician/' + id, { key : val }).then(function (response) {

变量key和val包含我想要的内容:

console.log(key);    // active
console.log(val);    // true

然而,发送的是:

{key: true}

我无法理解为什么变量的价值" key"没用过。为什么不发送{"活跃":" true"}或{"活跃":true}?

1 个答案:

答案 0 :(得分:2)

这是因为{key: value}是一个对象文字。您将键定义为字面上的“键”,将值定义为动态值。

为了得到你想要的,你可以像Jaromanda X上面所说的那样做:

{ [key] : val }

这应该适用于现代JS。

如果您没有最新的幻想,请将该对象的构造移出该函数调用:

var data = {}
data[key] = value

这将允许您使用变量key作为名称。