所以我有一个带有两个这样的对象的数组:
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}
如果有人可以帮助我,我将不胜感激。
最佳答案
let arr =
[
{Activity: "Skiing", Duration: 74},
{Activity: "Strength training", Duration: 64},
{Activity: "Cycling", Duration: 64},
{Activity: "Running", Duration: 43}
];
let input = {
Activity: "Skiing",
Duration: 12
};
arr = arr.filter(
x => {
if(x.Activity === input.Activity)
x.Duration += input.Duration;
return x;
}
);
console.log(arr);