如何根据嵌套数组中的值过滤带有对象的数组并对其进行计数

丹尼斯·伯格

我有一部电影,array其中objects列出了每部电影的流派(作为array):

const movies = [
    {
        "title": "Movie A",
        "genre": ["Action", "Sci-Fi", "Thriller"]
    },
    {
        "title": "Movie B",
        "genre": ["Horror, Sci-Fi"]
    },
    {
        "title": "Movie C",
        "genre": ["Action", "Horror", "Thriller"]
    },
    {
        "title": "Movie D",
        "genre": ["Mystery", "Horror", "Sci-Fi"]
    }
];

使用(vanilla、ES6+ 或 Lodash)JavaScript:如何创建一个新的array(见下文)并objects显示在上面的电影数组中列出了多少次(count下面)一个流派label下面) genre

换句话说:上面列出了一个类型的次数。

最终结果:新的array按字母顺序排序label

const genres = [
    {
        "label": "Action",
        "count": 2
    },
    {
        "label": "Horror",
        "count": 3
    },
    {
        "label": "Mystery",
        "count": 1
    },
    {
        "label": "Sci-Fi",
        "count": 3
    },
    {
        "label": "Thriller",
        "count": 2
    }
];
桑迪帕

这将创建带有标签和计数的数组

const movies = [
        {
            "title": "Movie A",
            "genre": ["Action", "Sci-Fi", "Thriller"]
        },
        {
            "title": "Movie B",
            "genre": ["Horror", "Sci-Fi"]
        },
        {
            "title": "Movie C",
            "genre": ["Action", "Horror", "Thriller"]
        },
        {
            "title": "Movie D",
            "genre": ["Mystery", "Horror", "Sci-Fi"]
        }
    ];
    var genres = [];
    for (var i = 0; i < movies.length; i++) {
        var list = movies[i].genre;
        for (var j = 0; j < list.length; j++) {
    
            var existingValue = genres.find(function (value) {
                return value.label === list[j]
            });
    
            if (!existingValue) {
                genres.push(
                    {
                        label: list[j],
                        count: 1
                    }
                );
            } else {
                existingValue.count++;
            }
        }
    }
    console.log(genres)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据Typescript中对象嵌套数组的值进行过滤

Ramda:如何根据嵌套数组中的值进行过滤

如何在Mongoose中删除带有其对象ID的嵌套数组对象值?

根据对象的嵌套数组进行过滤

根据其嵌套数组值过滤数组

在带有对象的嵌套数组中过滤

如何遍历嵌套键值对并根据数组值对其进行过滤

如何从带有对象的嵌套数组中获取值

如何根据嵌套数组之一的值过滤数组?

根据嵌套数组mongodb中的值过滤数组

根据嵌套数组中的值过滤数组

根据嵌套数组对象过滤对象

如何在 iOS Swift 中的嵌套数组(对多关系)中根据条件过滤对象数组

如何根据嵌套数组值过滤值?

如何在嵌套数组中过滤JSON对象数组

根据其值过滤JavaScript深度嵌套的对象数组

如何使用lodash根据值对嵌套数组进行排序?

如何通过在mongo中过滤嵌套数组的嵌套数组来查询对象的嵌套数组

如何从对象数组中的嵌套数组访问特定值?

如何根据元素值对嵌套数组中的值求和

如何过滤嵌套数组对象?

在对象的嵌套数组中过滤

无法根据嵌套数组过滤对象数组

在javascript中如何在具有嵌套数组的对象数组中查找值

按数组值展平对象的嵌套数组并对其进行排序

根据深度嵌套数组PHP的值过滤多维数组

如何获得带有嵌套数组且其元素具有唯一顺序的数组?

按值数组过滤对象数组中的嵌套数组

Javascript或lodash:使用嵌套数组的值过滤对象数组