// 计算总数 let numberSum = 0.0; formData.value.forEach((item, index) => { if (index !== 0) numberSum += parseFloat(item); })'专业等级': !isAutoCompute.value ? '' : numberSum,输出为什么数据错误
时间: 2023-06-08 20:05:58 浏览: 44
根据代码中的逻辑,每次循环都会用当前项的值来更新numberSum,但是在if语句中只有index不等于0的情况下才会更新numberSum的值,这就导致了除了第一个值以外的所有值都被更新到numberSum中去了,而第一个值则被忽略了。因此,最终输出的数据是错误的。
相关问题
计算总数 let numberSum = 0.0; formData.value.forEach((item, index) => { if (index !== 0) numberSum += parseFloat(item); })'专业等级': !isAutoCompute.value ? '' : numberSum,输出为什么数据是NAN
根据您提供的代码,您没有正确累加 `numberSum` 的值。在 `formData.value` 中遍历时,您只在循环的第一项以外的项中将 `item` 解析为浮点数并将其赋值给 `numberSum`。这意味着 `numberSum` 的值在循环的每一次迭代中都被重置为当前项的解析值,在最后一次迭代时可能为空或非数字。
为了计算总数,您需要累加 `item` 的浮点值到 `numberSum`:
```
let numberSum = 0.0;
formData.value.forEach((item, index) => {
if (index !== 0) numberSum += parseFloat(item); // 累加项的浮点值
});
```
注意:如果您的代码仅迭代一个数值,可以省略循环并直接解析该数值。例如:
```
const numberSum = parseFloat(formData.value[1]);
```
希望这可以帮助您解决问题!
老师帮我优化一下这段代码: //发起培训提交 const startUpdate = async () =>{ let sumbit = JSON.parse(JSON.stringify(form.data)); formData.value.submit(async (res)=> { sumbit.trainStatus = 1; formTrainDate.value.submit(async (res)=>{ sumbit.trainStartTime = trainDate.data.trainDateData[0]; sumbit.trainEndTime = trainDate.data.trainDateData[1]; if (sumbit.empState != 0 ){ //查他选择的岗位是否和他已经有的岗位重合,如果重合,重合的岗位的等级不得选择比他自己已有等级更低 let res = await getUserList({id: form.data.empId}); if (res.status && res.data?.dataSource[0]['skill']?.length>0){ let post = res.data.dataSource[0]['skill'].find((item)=> item.postId === form.data.postId); if(post) { let index = certificationLevel.findIndex((item)=> item.name === post.certificationLevel); let choseIndex = certificationLevel.findIndex((item)=> item.name === form.data.certificationLevel); if (index>=choseIndex){ promptContent.value = '所选岗位等级不得低于员工原有此岗位等级:'+post.certificationLevel; promptDialog.value.open(); return; } } } } let resMsg = await personnelTrainUpdate(sumbit); if (afterSubmit(resMsg)){ uni.switchTab({ url:"/pages/tabPages/allPages/index", success:()=>{ uni.navigateTo({ url:"/pages/qualityPages/personnelTrain/index?index=2", }); } }) } }) }) }
好的,我来帮您优化一下这段代码。
首先,我建议您使用ES6中的箭头函数来定义函数,以保持代码的简洁性和可读性。
其次,您可以使用`await`关键字来等待异步操作返回结果,以保证代码的执行顺序和可靠性。
最后,您可以使用`try...catch`语句来捕捉可能出现的异常,以避免程序崩溃。
参考下面的代码,希望对您有所帮助:
```
const startUpdate = async () => {
try {
let submit = { ...form.data };
await formData.value.submit();
submit.trainStatus = 1;
await formTrainDate.value.submit();
submit.trainStartTime = trainDate.data.trainDateData[0];
submit.trainEndTime = trainDate.data.trainDateData[1];
if (submit.empState !== 0) {
let res = await getUserList({ id: form.data.empId });
if (res.status && res.data?.dataSource[0]['skill']?.length > 0) {
let post = res.data.dataSource[0]['skill'].find((item) => item.postId === form.data.postId);
if (post) {
let index = certificationLevel.findIndex((item) => item.name === post.certificationLevel);
let choseIndex = certificationLevel.findIndex((item) => item.name === form.data.certificationLevel);
if (index >= choseIndex) {
promptContent.value = '所选岗位等级不得低于员工原有此岗位等级:' + post.certificationLevel;
promptDialog.value.open();
return;
}
}
}
}
let resMsg = await personnelTrainUpdate(submit);
if (afterSubmit(resMsg)) {
uni.switchTab({
url: "/pages/tabPages/allPages/index",
success: () => {
uni.navigateTo({
url: "/pages/qualityPages/personnelTrain/index?index=2",
});
},
});
}
} catch (e) {
console.error(e);
}
};
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)