我有 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/