Cha*_*lva 1 javascript arrays json google-analytics node.js
我根据给定的参数从Google Analytics API获取数据.这是一个JavaScript数组对象.
[ [ '201801', '(Other)', '129' ],
[ '201801', 'Direct', '2236' ],
[ '201801', 'Email', '2' ],
[ '201801', 'Organic Search', '6263' ],
[ '201801', 'Referral', '185' ],
[ '201801', 'Social', '669' ],
[ '201802', '(Other)', '371' ],
[ '201802', 'Direct', '2037' ],
[ '201802', 'Email', '3' ],
[ '201802', 'Organic Search', '5790' ],
[ '201802', 'Referral', '162' ],
[ '201802', 'Social', '515' ],
[ '201803', '(Other)', '213' ],
[ '201803', 'Direct', '2465' ],
[ '201803', 'Organic Search', '8596' ],
[ '201803', 'Referral', '238' ],
[ '201803', 'Social', '356' ],
[ '201804', '(Other)', '65' ],
[ '201804', 'Direct', '1872' ],
[ '201804', 'Email', '1' ],
[ '201804', 'Organic Search', '9275' ],
[ '201804', 'Referral', '170' ],
[ '201804', 'Social', '307' ],
[ '201805', '(Other)', '35' ],
[ '201805', 'Direct', '2429' ],
[ '201805', 'Email', '2' ],
[ '201805', 'Organic Search', '8995' ],
[ '201805', 'Referral', '234' ],
[ '201805', 'Social', '341' ],
[ '201806', 'Direct', '51' ],
[ '201806', 'Organic Search', '282' ],
[ '201806', 'Referral', '1' ],
[ '201806', 'Social', '3' ] ]
Run Code Online (Sandbox Code Playgroud)
如果不清楚,请查看此GIST:https://gist.github.com/chanakaDe/3ad4e2a51c99386a2737b65a82f034b1
在这个数组中,你可以看到像这样的'201801'.这意味着YEAR是2018年,MONTH是1st.它同样继续.
通常在一个特定月份,我们得到6个值,如(其他),直接,电子邮件,有机搜索.转介和社交.在此数组中,相同的日期重复6次.
我想要做的是创建一个简单的JSON对象.这是我想要创建的格式,以便在我的AngularJS前端显示所有这些数据.
[
{
"date" : "201801",
"(Other)" : "129",
"Direct" : "2236",
"Email" : "2",
"OrganicSearch" : "6263",
"Referral" : "185",
"Social" : "669"
},
{
"date" : "201802",
"(Other)" : "371",
"Direct" : "2037",
"Email" : "3",
"OrganicSearch" : "5790",
"Referral" : "162",
"Social" : "515"
}
]
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的JSON数组.我试图找到重复的值,然后尝试将它们合并到一个JSON对象,如果附近的元素相同.许多尝试都是这样的.但仍然没有好处.拜托,伙计们,此刻真的想要你的帮助.我不擅长数据分析和这些排序.请帮帮我.该项目使用Node.js 8.10.0完成.
您可以将日期作为哈希表的键,并收集所有键值对.稍后只获取对象数组的值.
var array = [['201801', '(Other)', '129'], ['201801', 'Direct', '2236'], ['201801', 'Email', '2'], ['201801', 'Organic Search', '6263'], ['201801', 'Referral', '185'], ['201801', 'Social', '669'], ['201802', '(Other)', '371'], ['201802', 'Direct', '2037'], ['201802', 'Email', '3'], ['201802', 'Organic Search', '5790'], ['201802', 'Referral', '162'], ['201802', 'Social', '515'], ['201803', '(Other)', '213'], ['201803', 'Direct', '2465'], ['201803', 'Organic Search', '8596'], ['201803', 'Referral', '238'], ['201803', 'Social', '356'], ['201804', '(Other)', '65'], ['201804', 'Direct', '1872'], ['201804', 'Email', '1'], ['201804', 'Organic Search', '9275'], ['201804', 'Referral', '170'], ['201804', 'Social', '307'], ['201805', '(Other)', '35'], ['201805', 'Direct', '2429'], ['201805', 'Email', '2'], ['201805', 'Organic Search', '8995'], ['201805', 'Referral', '234'], ['201805', 'Social', '341'], ['201806', 'Direct', '51'], ['201806', 'Organic Search', '282'], ['201806', 'Referral', '1'], ['201806', 'Social', '3']],
result = Object.values(
array.reduce((r, [date, key, value]) => {
r[date] = r[date] || { date };
r[date][key] = value;
return r;
}, {})
);
console.log(result);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
115 次 |
最近记录: |