在创build对象时,数组键不会被内插

我将JSON转换为数组并返回到单独的JSON对象(它与React和子对象有关)。 下面的数组工作正常,因为把数组元素放入variables中。 但是,当我试图从他们的obj,关键不起作用,它只是作为“myKey” – 为什么? 将数组元素转换为对象的正确方法是什么?

var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var fetch = require('isomorphic-fetch'); app.use(bodyParser.json()); app.use(methodOverride()); var promise = new Promise(function(resolve, reject) { fetch('https://jsonplaceholder.typicode.com/posts/1').then( function(response){ return response.json(); } ).then(function(jsonData){ result = [] for(var i in jsonData) { result.push([i, jsonData [i]]); } var myKey = result[0][0]; var myValue = result[0][1]; var myJSON = {myKey : myValue} console.log(myJSON); }); }); 

因为myKey被解释为一个值,而不是一个variables。 您需要使用dynamic密钥语法,即:

 { [myKey] : myValue } 

完整的代码:

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var fetch = require('isomorphic-fetch'); app.use(bodyParser.json()); app.use(methodOverride()); var promise = new Promise(function(resolve, reject) { fetch('https://jsonplaceholder.typicode.com/posts/1').then( function(response){ return response.json(); } ).then(function(jsonData){ result = [] for(var i in jsonData) { result.push([i, jsonData [i]]); } var myKey = result[0][0]; var myValue = result[0][1]; var myJSON = {[myKey] : myValue} console.log(myJSON); }); }); 

使用带方括号的钥匙。

 var myJSON = {[myKey] : myValue} 

有一个简单的方法,你可以得到这个工作

 var myJSON = {}; myJson.myKey = myValue; myJson.myKey2 = myJsonValue2; ..