所以我有一个包含两个对象的数组,如下所示:
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/