Javascript 数组对两个对象进行排序(菜鸟)

标签 javascript arrays sorting search replace

所以我有一个包含两个对象的数组,如下所示:

Array(4)
0:{Activity: "Skiing", Duration: 74}
1:{Activity: "Strength training", Duration: 64}
2:{Activity: "Cycling", Duration: 64}
3:{Activity: "Running", Duration: 43}

输入来自用户,该用户从四种不同的事件中选择一种,然后写下锻炼持续了多长时间。

我想要做的是以求和“持续时间”的方式对它们进行排序,而不是创建一个新的数组元素。

因此,如果用户输入“事件”和“持续时间”,数组将找到正确的事件并增加持续时间以给出总持续时间。 例如如果

“事件”:“滑雪”,“持续时间”= 10

将持续时间更新为“84”

Array(4)
0:{Activity: "Skiing", Duration: 84}
1:{Activity: "Strength training", Duration: 64}
2:{Activity: "Cycling", Duration: 64}
3:{Activity: "Running", Duration: 43}

如果有人能帮助我,我将不胜感激。

最佳答案

使用.find,然后更新找到的对象:

const arr = [
  {Activity: "Skiing", Duration: 74},
  {Activity: "Strength training", Duration: 64},
  {Activity: "Cycling", Duration: 64},
  {Activity: "Running", Duration: 43},
];

const inputActivity = 'Cycling';
const inputDuration = 33;
const foundObj = arr.find(({ Activity }) => Activity === inputActivity);
if (foundObj) foundObj.Duration += inputDuration;
console.log(arr);

关于Javascript 数组对两个对象进行排序(菜鸟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640456/

相关文章:

javascript - 如何从回调函数返回值

java - 给定一个旧数组和一组需要跳过的索引位置,如何构造一个新数组?

javascript - 使用 JavaScript 查看变量是否为数组

javascript - 如何利用 JavaScript 和 ES5 从基于关键字段的对象数组中获取唯一值

objective-c - 我怎样才能做一个不区分大小写的 NSFetchedResultsController 类型,它也忽略像 "the"这样的词?

java - 用于 GWT 的静态 Google 地球 map

javascript - 如何将启动 Bootstrap 模板添加到 asp.net mvc web 应用程序?

JavaScript:通过构造函数创建对象和通过对象文字创建对象之间有什么区别?

algorithm - 对具有重复元素的数组进行排序的最佳数据结构是什么?

java - 拆分数组中的元素