javascript - 通过删除 javascript 中的重复项来组合对象数组

标签 javascript json

我有一个数据对象

data : [
["1", 20],
["1", 24],
["1", 2],
["1", 32],
["1", 23],
["1", 80],
["2", 3],
["2", 32],
["2", 34],
["2", 36],
["2", 36]]

现在我希望对象像这样分组,即“1”分组在一个数组中,“2”也是如此

"data" : [
["1", [20, 24, 2, 32, 23, 80]],
["2", [3, 32, 34, 36, 36]]
] 

最佳答案

试试这个(fiddle - 查看控制台):

var obj = {
    data : [
        ["1", 20],
        ["1", 24],
        ["1", 2],
        ["1", 32],
        ["1", 23],
        ["1", 80],
        ["2", 3],
        ["2", 32],
        ["2", 34],
        ["2", 36],
        ["2", 36]]
};

function group(data) {
    var mapObj = data.reduce(function (map, item) { // create a map of the key: [values]
            var key = item[0];
            var value = item[1];
            map[key] && map[key].push(value) || (map[key] = [value]);
            return map;
        }, {});

    return Object.keys(mapObj).map(function (key) { // map the keys and values back to arrays
        return [key, mapObj[key]];
    });
}

var newObj = {
    data: group(obj.data)
};

关于javascript - 通过删除 javascript 中的重复项来组合对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32160591/

相关文章:

javascript - 合并重叠数据集

javascript - 在 jquery post ASP.NET MVC 之前转义字符的最佳方法

javascript - 更改 ng-model 中的 Children 值

json - 新交所 IAS 报价认证

java - 使用 Jackson 的自定义 JSON 映射

json - 从 R 中的加载对象创建 json 字符串

javascript - 使用 webpack 导入 Index.js 模块

javascript - 数据 :image/gif;base64 <img> source in ie7

javascript - 将 CSS/Javascript 内联到 HTML 文件中

android - JSONObject 无法转换为 JSONArray