合并数组并将相似的项目加入一个项目

时间:2021-04-10 10:12:14

标签: javascript

我正在为一个大型美食博客创建一个食谱应用程序(在 React Native 中)。在该应用中,还有一个额外的工具:交互式杂货清单。

当您打开食谱时,您可以按一个按钮来填充此杂货清单。例如。如果您需要 1 个南瓜和 2 磅黄油,只需按一下按钮,应用就会自动在杂货清单中创建 2 个项目:“1 个南瓜”和“2 磅黄油”。

我面临的问题:假设您想在杂货清单中添加第二个食谱,而这个食谱也需要 1 个南瓜。现在,该应用程序将再次推送一个项目“1 个南瓜”,因此您现在在杂货列表中有 2 个项目“1 个南瓜”。我不想要 tis:我希望这些项目被合并,所以它成为一个说“2 个南瓜”的项目。

我真的不知道如何开始。该网站是一个 Wordpress 网站,我正在使用插件高级自定义字段为杂货清单创建一个额外的字段。此字段在 REST API 中公开,仅供应用程序使用。这是一个文本字段,每一行代表杂货清单上的一个项目。

这是我想要合并以创建合并数组的 3 个数组的示例:

const arr1 = [
  '1 pumpkin',
  '2 pounds of butter',
  'salt'
];

const arr2 = [
  '1 pumpkin',
  'salt'
];

const arr3 = [
  '2 pumpkins',
  '1 jar of peanut butter',
  '1 pound of butter'
];

// mergeArrays() is a custom function I need to create
// this function should detect the different items of the
// groceries list
const mergedArray = mergeArrays(arr1, arr2, arr3);

// resulted array
// mergedArr = [
//   '3 pumpkins',
//   'salt',
//   '3 pounds of butter',
//   '1 jar of peanut butter'
// ];

请注意,这只是一个示例。我无法对南瓜这个词进行“硬编码”,因为在现实生活中,一个食谱可能需要 1 万种不同的产品,而我无法对它们全部进行硬编码。

0 个答案:

没有答案