如何解决我在下面的数组对象中有数据并想转换另一种数组对象格式
我的 API 响应 -
let data = [
{
date: '2021-04-27',formatted_date: 'Apr 27',location: [
{
date: '2021-04-27',country: 'India',total_views: 6,formatted_views: '6',total_watch_duration: 115,formatted_watch_duration: '0h 1m',},{
date: '2021-04-27',country: 'USA',total_views: 16,formatted_views: '16',total_watch_duration: 1195,country: 'Canada',formatted_views: '10',],{
date: '2021-04-28',formatted_date: 'Apr 28',location: [
{
date: '2021-04-28',total_views: 1,formatted_views: '1',total_watch_duration: 21,formatted_watch_duration: '0h 0m',{
date: '2021-04-28',country: 'UK',country: 'China',{
date: '2021-04-29',formatted_date: 'Apr 29',location: [
{
date: '2021-04-29',total_views: 2,formatted_views: '2',total_watch_duration: 37,{
date: '2021-04-30',formatted_date: 'Apr 30',location: [
{
date: '2021-04-30',total_watch_duration: 0,formatted_watch_duration: '0',{
date: '2021-04-30',{
date: '2021-05-01',formatted_date: 'May 01',location: [],{
date: '2021-05-02',formatted_date: 'May 02',{
date: '2021-05-03',formatted_date: 'May 03',{
date: '2021-05-04',formatted_date: 'May 04',location: [
{
date: '2021-05-04',total_views: 4,formatted_views: '4',total_watch_duration: 584,formatted_watch_duration: '0h 9m',{
date: '2021-05-05',formatted_date: 'May 05',];
如果 location 包含空,我想在下面的格式中考虑 0。假设数据的 total_views 值。
this.geographySeriesData = [
{
name: 'India',data: [500,555,444,777,877,9944,750],{
name: 'USA',data: [10,1000,1200,500],}
];
解决方法
您可以使用此代码进行转换。这不是最佳的,但非常简单易懂。您需要的数据存储在 finalResult 变量中。
const result = {};
const locations = data.map(el => el.location).flat();
locations.forEach(loc => {
result[loc.country] = [];
});
locations.forEach(loc => {
result[loc.country].push(loc.total_views);
});
const finalResult = Object.keys(result).map(key => ({ name: key,data: result[key]}));
,
你可以实现像这样的确切格式
countryList = []
countryObject = {}
data.forEach((d) => {
d.location.forEach((loc) => {
if(loc.country in countryObject){
countryViewsList = countryObject[loc.country]
countryViewsList.push(loc.total_views)
countryObject[loc.country] = countryViewsList
} else {
countryObject = Object.assign(countryObject,{[loc.country]: [loc.total_views]})
}
})
})
Object.keys(countryObject).forEach((k)=>{
countryList.push({
name: k,data: countryObject[k]
})
})
countryList
是您要求的确切格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。