首页 > 解决方案 > 如何使用匿名函数根据条件拆分数组

问题描述

我有一个包含应用程序名称(app1、app2 等)和相关 ID 的数组列表,如下所示:

["App1|380d82838f", "App1|54870d82838f", "App2|882538011", "App2|82538011", "App2|82567845"]

我需要用唯一的应用程序名称重写数组,并且所有相应的 ID 用“|”分隔。

["App1|380d82838f-54870d82838f", "App2|882538011-82538011-82567845"]

任何方向都非常感谢。

谢谢亚历克斯

标签: javascript

解决方案


您可以将一个对象用于collectiong,并获取用于映射结果的条目;

const
    data = ['App1|380d82838f', 'App1|54870d82838f', 'App2|882538011', 'App2|82538011', 'App2|82567845'],
    result = Object
        .entries(data.reduce(function (r, s) {
            const [key, value] = s.split('|');
            (r[key] = r[key] || []).push(value);
            return r;
        }, {}))
        .map(function (a) { return a.join('|'); });

console.log(result);


推荐阅读