我在JavaScript中有一个对象,格式如下:
{
'date' : {"12.12.2014","12.12.2014","12.12.2014","13.12.2014","13.12.2014","14.12.2014"}
'product' : {"apple","banana","apple","strawberry","apple","banana"}
}
此对象必须按以下格式拆分和计算:
var apple = {
'date': {"12.12.2014","13.12.2014","14.12.2014"}
'product': {2,1,0}
}
var banana = {
'date': {"12.12.2014","13.12.2014","14.12.2014"}
'product': {1,0,1}
}
var strawberry = {
'date' : {"12.12.2014","13.12.2014","14.12.2014"}
'product': {0,1,0}
}
也许你可以提供解决方案。
答案 0 :(得分:0)
使用正确的数据结构和一些助手date
和dateObj
,您首先得到所有日期,第二个对象作为日期的哈希表,第三个是分组结果。
var object = { 'date': ["12.12.2014", "12.12.2014", "12.12.2014", "13.12.2014", "13.12.2014", "14.12.2014"], 'product': ["apple", "banana", "apple", "strawberry", "apple", "banana"] },
date = object.date.filter(function (d) {
if (!this[d]) {
this[d] = true;
return true;
}
}, Object.create(null)),
dateObj = {},
grouped = {};
date.forEach(function (d, i) {
dateObj[d] = i;
});
object.product.forEach(function (p, i) {
grouped[p] = grouped[p] || {
date: date,
product: date.map(function (d) { return 0; })
};
grouped[p].product[dateObj[object.date[i]]]++;
});
console.log(grouped);