javascript - 比较 2 个数组 - 一个包含字符串,另一个包含数字。重复字符串的个数之和

标签 javascript arrays compare

我有 2 个数组。让我们说

categories = ["hotels", "transfers","food","transfers"] 
amounts = [1500, 250, 165, 150]

我想生成一个输出对象的对象...

result = {hotels: 1500, transfers: 400, food: 165}

该函数应该循环遍历类别,填充结果对象,添加类别的唯一元素作为对象键,并将金额作为值。该函数还应该添加重复键的数量。

我已经尝试了几种方法,例如在数组上为每个嵌套 2 个,for 循环,...但我无法弄清楚任何有效的方法...

最佳答案

如果两个数组的索引始终保持同步,则可以这样做:

const categories = ["hotels", "transfers","food","transfers"];
const amounts = [1500, 250, 165, 150];
const result = {};

categories.forEach((category, index) => {
  const doesKeyExist = !!result[category];
  const amount = amounts[index];
  const correctAmount = doesKeyExist ? result[category] + amount : amount;

  result[category] = correctAmount;
}

这将产生您所期望的结果:

result = {hotels: 1500, transfers: 400, food: 165}

关于javascript - 比较 2 个数组 - 一个包含字符串,另一个包含数字。重复字符串的个数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634414/

相关文章:

c++ - 按超过 1 个字段对 vector 进行排序

javascript - 通过 WebRTC 和浏览器支持进行屏幕共享

android - 如何使用列表/数组列表向 Firebase 添加和检索数据?

c - 在给定数组中查找给定元素

java - 分而治之算法 [字符数组]

python - 使用 Python 的列表列表的差异

javascript - Meteor:在页面加载时获取路由参数

javascript - Node.js 和 MongoDB - 多个异步数据库操作的原子性?

javascript - 如何从rails2中的select标签中获取值?

java - 为什么trim()给我字符串常量池引用?