我很难找到我的哈希,以正确地保留我要寻找的价值。
一些背景可以阐明此处的值。
我正在在React中创建一个练习应用。最后一个功能是创建一个搜索功能以返回用户最大升力。
测试是用于卧推的。值如下。
405435285225135185
无论我如何构建哈希,它都会返回{台式:185},我希望它通过数据进行排序,并且只有在新值大于旧值时才更改值。
const completedExercises = {};
mergedSets.forEach(set => {
if (set) {
let exercise = exercises[set.exercise_id]
let name = exercise.exercise_name
if (exercise.ex_type === 'lift') {
if (completedExercises[name] < (set.weight_lifted)) {
completedExercises[name] = set.weight_lifted
} else {
completedExercises[name] = set.weight_lifted
}
}
}
})
第一个条件是检查设置是否是设置,以防用户在日志中没有存储的锻炼。
第二个仅对升降机进行练习,因为有氧运动没有举重值。
我可以在调试器中看到这两个,如果条件效果正常,并且所有数据都通过。
我有一系列练习,一组具有练习_id,这是我得到名字的地方。该集合存储了举重的重量。
我是JS的新手,所以我不确定这是否与使用foreach有关,与此同时,我将尝试循环。任何帮助,将不胜感激。无论订单如何,这总是将哈希设置为过去的最后一个值。
for循环或foreach没关系,这是我的其他条件,正如评论中指出的那样!感谢您的帮助,深夜和漫长的一天...
const completedExercises = {};
for (var i = 0; i < mergedSets.length; i++) {
let set = mergedSets[i];
let exercise = exercises[set.exercise_id]
let name = exercise.exercise_name
if (exercise.ex_type === 'lift') {
if (completedExercises[name] < (set.weight_lifted)) {
completedExercises[name] = set.weight_lifted
} else if (!completedExercises[name]) {
completedExercises[name] = set.weight_lifted
}
}
}