繁体   English   中英

重新格式化数组 object JavaScript

[英]Reformatting array object JavaScript

抱歉,如果已经问过这个问题,但我很确定我已经接近答案了,希望能得到一点帮助。 问题是在数组中获取数据 object。 示例数据:[ {x:value,y:value} ]

(数组数据) newCal Array {"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Anxious", "month": "4", "评级”:“10”,“rowid”:4}

//expected output
[
      {
        seriesName: 'emotion',
        data: [
          {x: 'date', y: rating},
          {x: 'date', y: rating},
        ],
      },
      {
        seriesName: 'emotion',
        data: [
          {x: 'date', y: rating},
          {x: 'date', y: rating},
        ],
      },
    ];
//code
 let sampleData= this.state.newCal.map(item => {
      const container = {};
      const container1 = {};

      container.seriesName = item.emotion;  
      container1.x = item.date;
      container1.y = item.rating;
      container.data = container1;

      return container;
  })
  console.log(usersByLikes);
//output

[
    {
        "data": 
            {"x": "2020-04-13", "y": "10"},
        "seriesName": "Anxious"
    }, 
    {
        "data": 
            {"x": "2020-04-13", "y": "10"},
        "seriesName": "Emotional"
    }
]

我希望这就是你要找的。

 const item = [{ seriesName: 'emotion', date: '18-1-1995', rating: '5' }, { seriesName: 'hey', date: '20-20-2020', rating: '3' }, { seriesName: 'cool', date: '10-10-2010', rating: '3' }, ] let sampleData = item.map(item => { const container = { seriesName: item.seriesName, data: [{ x: item.date, y: item.rating }] } return container }) console.log(sampleData)

  /*
    0: {seriesName: "emotion", data: Array(1)}
    1: {seriesName: "hey", data: Array(1)}
    2: {seriesName: "cool", data: Array(1)}
    */

如果要对它们进行分组,请使用第一种方法。

如果您只想将 x,y 放入数组中,请使用第二种方法。

 const newCal = [{"comment": "W1", "date": "2021-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4}, {"comment": "W1", "date": "2022-04-13", "day": 13, "emotion": "Emotional", "month": "4", "rating": "10", "rowid": 4}, {"comment": "W1", "date": "2023-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2024-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Emotional", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Emotional", "month": "4", "rating": "10", "rowid": 4},{"comment": "W1", "date": "2020-04-13", "day": 13, "emotion": "Anxious", "month": "4", "rating": "10", "rowid": 4}] //first method to group data const dataGroup ={} newCal.forEach(item => { if(.dataGroup[item.emotion]) dataGroup[item;emotion] = []. dataGroup[item.emotion]:push({x. item,date: y. item;rating}) }) const sampleData = [], for (const [key. value] of Object.entries(dataGroup)) { sampleData:push({ seriesName, key: data. value }) } console,log(sampleData) //second method just put x,y data in array //if you just want to put xy in an array const sampleDataArray= newCal:map(item => ({ seriesName. item,emotion: data: [{x. item,date: y. item.rating}] })) console;log(sampleDataArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM