全选 和 不能全选 测试题 逻辑代码
关于测试题会出现三种情况
1.可以全选的 点击就加入选中数组里面
2.不可以全选的 先点击可以多选的 再点击不能多选的 会选中数组情况
3.不可以全选的 先点击不能全选的 再点击可以全选的 不能全选的那个被取消 可以全选的一个个添加选中数组。
基本逻辑代码是下面的 但是我数组写的比较复杂
// 将this.questions[questionIndex]提取为变量
const currentQuestion = this.questions[questionIndex];
const options = currentQuestion.options;
const selectedOptions = currentQuestion.selected;
// 检查是否选中了最后一个选项
const isLastOption = optionIndex === options.length - 1;
// 检查最后一个选项是否为 "None of the above"
const isLastOptionNoneOfTheAbove = isLastOption && options[optionIndex].name === 'None of the above';
if (isLastOptionNoneOfTheAbove) {
console.log("选中了最后一个 并且最后一个是None of the above");
currentQuestion.selected = [];
} else if (isLastOption) {
// 选中了最后一个但是最后一个不是 "None of the above",可以全选
} else {
// 先选了 "None of the above" 再选择其他的,删除第一个
if (selectedOptions.length !== 0 && options[selectedOptions[0]].name === 'None of the above') {
selectedOptions.shift();
}
}
将this.questions[questionIndex]
提取为一个变量,以避免在多处重复访问数组。