全选 和 不能全选 测试题 逻辑代码

发布时间 2023-07-26 14:43:53作者: yjxQWQ

全选 和 不能全选 测试题 逻辑代码

关于测试题会出现三种情况

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]提取为一个变量,以避免在多处重复访问数组。