首页 > 解决方案 > 如何从每个类别的 Json 数组中过滤和发送数据?

问题描述

假设我有:

{
  "cmds": [
    {
      "name": "ban",
      "category": "Moderation"
    },
    {
      "name": "meme",
      "category": "Fun"
    },
    {
      "name": "joke",
      "category": "Fun"
    }
  ]
}

我将如何过滤这些命令并发送:格式: 类别名称 命令

例如: 有趣 的模因,笑话

审核 禁令

(在 Node.JS 中)

标签: javascriptnode.jsarraysjsoncollections

解决方案


使用forEach和构建一个对象。当类别的相同键然后聚合值(名称)

const process = (arr) => {
  const result = {};
  arr.forEach(({ name, category }) => (result[category] ??= []).push(name));
  return result;
};

const data = {
  cmds: [
    {
      name: "ban",
      category: "Moderation",
    },
    {
      name: "meme",
      category: "Fun",
    },
    {
      name: "joke",
      category: "Fun",
    },
  ],
};

console.log(process(data.cmds))


推荐阅读