作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 JSON 转换为数组,然后再转换为单独的 JSON 对象(它与 React 和子对象有关)。下面的数组工作正常,将数组元素放入 vars 也是如此。但是当我尝试从它们中创建一个 obj 时, key 不起作用,它只是保持为“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
被解释为一个值,而不是一个变量。您需要使用动态键语法,即:
{ [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);
});
});
关于javascript - 制作对象时数组键不会被插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792994/
我是一名优秀的程序员,十分优秀!