我有一个 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}
}
也许你可以提供一个解决方案。
最佳答案
通过适当的数据结构和一些帮助器 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);
关于javascript - 将两个 JavaScript 对象中的数据组合到一个新对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349466/