首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新格式化数组对象JavaScript

重新格式化数组对象JavaScript
EN

Stack Overflow用户
提问于 2020-04-14 12:39:01
回答 2查看 68关注 0票数 0

如果这个问题已经被问过了,我很抱歉,但我很确定我已经接近答案了,希望能得到一点帮助。问题在于将数据对象放入数组中。示例数据:{x:value,y:value}

(数组数据) newCal数组{"comment":"W1","date":"2020-04-13","day":13,"emotion":“焦虑”,“月份”:"4","rating":"10","rowid":4}

代码语言:javascript
复制
//expected output
[
      {
        seriesName: 'emotion',
        data: [
          {x: 'date', y: rating},
          {x: 'date', y: rating},
        ],
      },
      {
        seriesName: 'emotion',
        data: [
          {x: 'date', y: rating},
          {x: 'date', y: rating},
        ],
      },
    ];
代码语言:javascript
复制
//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);
代码语言:javascript
复制
//output

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-14 12:52:48

我希望这就是你要找的。

代码语言:javascript
复制
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)

代码语言:javascript
复制
  /*
    0: {seriesName: "emotion", data: Array(1)}
    1: {seriesName: "hey", data: Array(1)}
    2: {seriesName: "cool", data: Array(1)}
    */
票数 0
EN

Stack Overflow用户

发布于 2020-04-14 13:04:48

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

如果你只想把x,y放入数组,使用第二种方法。

代码语言:javascript
复制
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 x,y in an array
 
 const sampleDataArray= newCal.map(item => ({
      seriesName: item.emotion,
      data: [{x: item.date, y: item.rating}]
  }))
  console.log(sampleDataArray);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61200782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档