在线答题小程序,填空类型判断方案
发布于 4 年前 作者 xia44 2415 次浏览 来自 分享

在线答题小程序V3.0已经增加了对填空题的支持,但是一直有个限制,就是目前只支持单个空的,对填空为多个空的不支持,这个限制归结到底为我之前没有想好,多个空时,如何去判断是否答题正确。

我把问题从需求里面提取出来就是:

如何比较两个数组的元素完全相同?顺序不做要求

今天在群里问了下小伙伴,马上就给了方案,具体如下所示

1

2

Javascript怎么比较两个数组是否相同?

JS怎么比较两个数组是否有完全相同的元素?

Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false

  alert([]==[]);
  alert([]===[]);

要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。以下两行代码将返回true

  alert([].toString()== [].toString());
  alert([].toString()===[].toString());

JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。

试比较以下两行代码:

  alert([1,2,3].toString()== [3,2,1].toString());
  alert([1,2,3].sort().toString()== [3,2,1].sort().toString());

3

多谢参与的几个小伙伴

4

1 回复

Javascript怎么比较两个数组是否相同?

JS怎么比较两个数组是否有完全相同的元素?

Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false

<script type="text/javascript">
        alert([]==[]);
        alert([]===[]);
</script>

要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。以下两行代码将返回true

<script type="text/javascript">
        alert([].toString()== [].toString());
        alert([].toString()===[].toString());
</script>

JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。

试比较以下两行代码:

<script type="text/javascript">
        alert([1,2,3].toString()== [3,2,1].toString());
        alert([1,2,3].sort().toString()== [3,2,1].sort().toString());
</script>
回到顶部