结合嵌套对象



我有一个这样的对象:

"data" :[{"question": "FirtName", "answer": "Daniel"},
         {"question": "LastNane", "answer": "Daniel2"},
         {"question": "Age", "answer": "80"}]
  • 我想使用Java脚本将其更改为此格式"数据":

    ["FirtName" : "Daniel", "LastNane" : "Daniel2", "Age" : "80"]
    

请帮助我!

我为输入作为对象数组提出了一个解决方案,而输出为对象

var data = [{question: "FirtName", answer: "Daniel"},
             {question: "LastNane", answer: "Daniel2"},
             {question: "Age", answer: 80}
           ];
var result = {};
data.forEach(x => {
  result[x.question] = x.answer;
});
console.log(result);

请注意您的对象,这就是应该的外观。

var object={
  "data" :[
    {
      "question": "FirtName",
      "answer": "Daniel"
    },{
      "question": "LastNane",
      "answer": "Daniel2"
    },{
      "question": "Age",
      "answer": "80"
    }
  ]
};
var newObject={};
object.data.forEach(function(question){
  newObject[question.question]=question.answer;
  });
// {"FirtName" : "Daniel", "LastNane" : "Daniel2", "Age" : "80"}
console.log(newObject);

此代码将为您提供所需的输出

var object = {
  "data": [{
    "question": "FirtName",
    "answer": "Daniel"
  }, {
    "question": "LastNane",
    "answer": "Daniel2"
  }, {
    "question": "Age",
    "answer": "80"
  }]
};
var result = '"data":' + JSON.stringify(object.data.reduce(function (result, item) {
  return result[item.question] = item.answer, result;
}, {})).replace('{', '[').replace('}', ']');
console.log(result);
// "data":["FirtName":"Daniel","LastNane":"Daniel2","Age":"80"]

您可以使用Array.prototype.reduce转换为您想要的对象 - 请参见下面的演示:

var array = [{"question": "FirtName","answer": "Daniel"},{"question": "LastNane","answer": "Daniel2"}, {"question": "Age","answer": "80"}];
var result = array.reduce(function(p, c) {
  p[c.question] = c.answer;
  return p;
}, {});
console.log(result);

最新更新