簡體   English   中英

如何使用 JavaScript 將對象數組轉換為給定格式

[英]How to convert array of objects to given format using JavaScript

我需要使用 JavaScript 格式化數據數組。 我正在使用以下數據:

var response = [{
      day_id:1,
      day_name:"Monday",
      subcat_id:"2",
      cat_id:"1",
      comment:"hii"
}, {
      day_id:1,
      day_name:"Monday",
      subcat_id:"1",
      cat_id:"2",
      comment:"hello"
}
 {
      day_id:2,
      day_name:"Tuesday",
      subcat_id:"3",
      cat_id:"2",
      comment:"hii"
}]

...我需要將其轉換為以下格式

var responseNew = {
      data: [{
        day_name: "Monday",
        day_id:1
        answers:[{
          cat_id:1,
          subcat_id:1,
          comment:'hii'
        },{
          cat_id:1,
          subcat_id:2,
          comment:'hello'
        }]
      }, {
        day_name: "Tuesday",
        day_id:2
        answers:[{
          cat_id:3,
          subcat_id:2,
          comment:'hello'
        }]
      }, {
        day_name: "Wednesday"
         day_id:3
      }, {
        day_name: "Thursday"
         day_id:4
      }, {
        day_name: "Friday"
         day_id:5
      }, {
        day_name: "Saturday",
         day_id:6
      }, {
        day_name: "Sunday"
         day_id:7
      }]
    };

我想將我的第一個數組轉換為第二種格式。 一個條件是,如果其他 day_id 不存在,它只是按照上面給出的靜態設置日期名稱和日期 id。

使用下划線按 day_id 分組,然后使用 map 渲染您期望的對象

 var response = [{ day_id: 1, day_name: "Monday", subcat_id: "2", cat_id: "1", comment: "hii" }, { day_id: 1, day_name: "Monday", subcat_id: "1", cat_id: "2", comment: "hello" }, { day_id: 2, day_name: "Tuesday", subcat_id: "3", cat_id: "2", comment: "hii" }]; var responseNew = _.chain(response) .groupBy("day_id") .map(function(obj) { return { day_name: obj[0].day_name, day_id: obj[0].day_id, answers: obj.map(function(o) { return { cat_id: o.cat_id, subcat_id: o.subcat_id, comment: o.comment } }) }; }); console.log(responseNew); $("#myPre").html(JSON.stringify(responseNew, null, 4));
 <script src="http://underscorejs.org/underscore-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <pre id="myPre"></pre>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM