现在有一数组,我需要判断里面是否有我当前的questionId,如果有则用一个js对象替换,没有则直接添加。我想用for循环的方式来查找,但是总会被添加好多次,请大家帮忙看下:即:用temp里面的questionId和data里面的questionId进行比较,如果data里面有这个questionId,则用temp里面的answer替换相应的answer,如果data里面没有这个questionId,则直接添加temp数据到data。问题:我用for循环遍历的时候,总会重复添加数据,就是说每次都会重复遍历数据。
2 回答
DIEA
TA贡献1820条经验 获得超3个赞
题主可能是逻辑弄晕了,你看对不对
// 已经有答案则判断是否该题答案
let isExist = false;
for (let i in answers) {
let questionId = answers[i].questionId;
if (id === questionId) {
isExist = true;
break;
}
}
if (isExist) {
// 如果存在答案则替换原答案
this.$store.commit('delIndex', i);
this.$store.commit('addAnswer', data);
console.log('我要替换原来答案', data);
} else {
// 否则直接提交
this.$store.commit('addAnswer', data);
console.log('初次提交答案', data);
}
前面的 for 循环优化下:
let isExist=answers.some((val,index)=>{
return id===val[index].questionId;
});
添加回答
举报
0/150
提交
取消

