如何使用JavaScript将对象数组的重复元素合并为一个

巴拉斯·库玛·穆鲁根

我对javascript不熟悉,也不知道如何搜索此问题。在这里,我已经简要说明了我的问题。以下是我必须从中找出数据中相似条目并将它们组合为一个对象的数据。这是我的数据:

var myArr = [{
        "Company": "Samsung",
        "model": "Galaxy S2",
        "screen_size": "5.5"
    },
    {
        "Company": "Samsung",
        "model": "Galaxy S3",
        "screen_size": "5.5"
    },
    {
        "Company": "Samsung",
        "model": "Galaxy S4",
        "screen_size": "5.5"
    },
    {
        "Company": "Xiaomi",
        "model": "Redmi 2",
        "screen_size": "4.7"
    },
    {
        "Company": "Xiaomi",
        "model": "Redmi 4",
        "screen_size": "5"
    },
    {
        "Company": "Xiaomi",
        "model": "Redmi Note 4",
        "screen_size": "5.5"
    }
]

我想合并数组中所有重复项。因此,我的数据结果应如下所示:

[{
    "Company": "Samsung",
    "models": [{
        "Galaxy S2": {
            "screen_size": "5.5"
        }
    }, {
        "Galaxy S3": {
            "screen_size": "5.6"
        }
    }, {
        "Galaxy S4": {
            "screen_size": "5.7"
        }
    }]
}, {
    "Company": "Xiaomi",
    "models": [{
        "Redmi 2": {
            "screen_size": "4.7"
        }
    }, {
        "Redmi 4": {
            "screen_size": "5"
        }
    }, {
        "Redmi Note 4": {
            "screen_size": "5.5"
        }
    }]
}]

有人请帮帮我。

哈桑·伊玛目(Hassan Imam)

您可以在对象array#reduceCompany使用对象进行分组,并使用提取所有值Object.values()

var myArr=[{ "Company": "Samsung", "model": "Galaxy S2", "screen_size": "5.5" }, { "Company": "Samsung", "model": "Galaxy S3", "screen_size": "5.5" }, { "Company": "Samsung", "model": "Galaxy S4", "screen_size": "5.5" }, { "Company": "Xiaomi", "model":"Redmi 2", "screen_size": "4.7" }, { "Company": "Xiaomi", "model": "Redmi 4", "screen_size": "5" }, { "Company": "Xiaomi", "model": "Redmi Note 4", "screen_size": "5.5" } ],
    result = Object.values(myArr.reduce((r,o) => {
      r[o.Company] = r[o.Company] || {'Company': o.Company, 'Models' : []};
      r[o.Company]['Models'].push({[o.model]:{'screen_size' : o.screen_size}});
      return r;
    }, {}));

console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将对象数组中的多个数组合并为一个数组

javascript将数组合并为一个对象

将对象内的多个数组合并为一个数组

使用 JavaScript 将两个一维数组的元素合并为一个二维数组的元素

如何在JavaScript中将两个不同的对象数组合并为一个新的对象数组?

如何将对象内部的属性合并为一个属性?

如何将对象合并为一个字符串

如何将数组的每n个元素合并为一个元素

如何使用唯一键将两个或更多对象数组合并为一个

如何将两个NodeList对象合并为一个,避免重复

如何使用JavaScript将对象数组组合到另一个数组

NodeJS 对象数组合并为一个对象

将相关对象合并为一个对象数组?(javascript)

如何将json对象的单独列表合并为一个对象数组?

如何将两个数组合并为一个对象数组

如何使用laravel将两个对象合并为一个对象

将具有相同日期的数组对象合并为一个-JavaScript

Javascript 将 4 个数组的值合并为一个对象

如何将不同键的对象数组从一个数组合并为一个键

Javascript:根据对象属性将 2 个对象数组合并为一个新数组

C#-将对象列表合并为一个对象

永久将对象合并为一个对象(Adobe Illustrator)

如何将 2 个对象合并为一个 - javascript

JavaScript:使用Reduce方法将多个数组合并为一个数组

使用自己的键将两个数组对象合并为一个

如何将两个 JavaScript 数组合并为一个 JSON?

我们如何将两个以上的对象数组合并为一个对象数组

Javascript将jQuery数组合并为一个

使用下划线将对象属性合并到一个数组中