今天写到了一个试题的考试功能,我需要通过把用户填的答案数组和正确答案数组比较,看看用户选中的答案是否和正确答案完全一致,比如正确答案是1,2那用户选中的答案可以是2,1这样顺序乱的
但是不能是2,3也不能是2,1,3。这都是错误的,只有选中的项和正确答案一致不多不少,并没每一位都是对的上的才能通过。那就需要两个数组比较,这里通过every方法来简单写一个数组比较功能

      //模拟两个数组,顺序是乱的
      let a = [1, 2, 3];
      let b = [2, 1, 3];
      //先判断两个数组长度要一致,如果不一致那不需要判断直接就不对了。
      if (a.length == b.length) {
        //every() 每一个都是true则返回true,如果有一个是false,那么直接返回false;
        let p = a.every((item, index) => {
          //判断的条件为a数组的每一项在b数组内查找不等于-1就代表有,有就为true,所有都是true就返回true
          return b.indexOf(item) !== -1;
        });
        console.log(p);
      } else {
        //这里写长度不一致也就是错误的时候的操作。比如提示答案错误
        console.log("长度不一致,错误");
      }
Logo

前往低代码交流专区

更多推荐