[英]Better solution for forEach and if ? map, filter Javascript
[英]Better solution for looping from filter and findIndex? Shorter solution ? JS
我需要为此循环找到更好或更短的解决方案。
let filteredTraining = this.trainingPlan.trainingTemplateExercises.filter(
(al) => al == trainingExerciseId
);
let index = this.trainingPlan.trainingTemplateExercises.findIndex(
(el) => el == filteredTraining[0]
);
this.trainingPlan.trainingTemplateExercises.splice(index, 1);
这只是 function 代码的一部分,但我认为它可以写得更好。 变量的值是什么并不重要。
如果当前代码有效,并且始终可以找到该元素,那么您只需要一个indexOf
:
const { trainingTemplateExercises } = this.trainingPlan;
trainingTemplateExercises.splice(trainingTemplateExercises.indexOf(trainingExerciseId) , 1);
如果该元素可能不存在,则需要在拼接之前检查索引是否为 -1:
const { trainingTemplateExercises } = this.trainingPlan;
const index = trainingTemplateExercises.indexOf(trainingExerciseId);
if (index !== -1) {
trainingTemplateExercises.splice(index , 1);
}
如果数组不包含重复元素,并且您可以重新分配数组而不是对其进行变异,我更喜欢splice
:
this.trainingPlan.trainingTemplateExercises = this.trainingPlan.trainingTemplateExercises
.filter(el => el !== trainingExerciseId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.