javascript - 将两个 JavaScript 对象中的数据组合到一个新对象中

标签 javascript json object

我有一个 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}
}

也许你可以提供一个解决方案。

最佳答案

通过适当的数据结构和一些帮助器 datedateObj,您首先可以获得所有日期,其次获得作为日期哈希表的对象,第三获得分组结果。

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/

相关文章:

c# - 无法使用 Jive REST API 发布共享 - 出现 400 Bad Request 错误

java - HashMap 上的 SimpleAdapter 无法正常工作

java - 动态创建文件中包含的所有对象

JavaScript 样式 : don't use wrapper objects for primitive types

javascript - JS在函数表达式中不使用 "return"将函数转为对象

javascript - 是否有基于 html/css/js 的富 Web 客户端框架?

java - 如何使用gson获取json字符串?

javascript - QUnit 测试中的 "Introduced global variable(s) _firebug"

javascript - 如何在 JavaScript 中计算 R 平方值?

javascript - 使用 javascript/jQuery 查找已点击的图像