好吧,我现在终于明白了,原来countMap1 = {},这玩意不是数组啊,我当成java语法了,原来这是js里的对象啊,哈哈哈。明白了,把数据类型当作key,把出现次数当作value,然后对比每一种数据类型是否存在以及出现次数是否相同。好吧,确实很清奇。比我的方法要炫酷,哈哈。
我再换一种说法吧,前半部分我跟老师是一样的,后面的处理不同,我是排序再判断,老师是不排序,但是通过同步检查来达到目的,非常清奇的思路。意思就是,你有5个苹果1个梨,我有3个苹果2个梨。现在老师说,拿出苹果,然后我拿出1个,你拿出1个,然后老是说拿出梨,我拿出1个,你拿出1个,老师再说拿出梨,我能拿,但是你拿不出来,这就表示我们手所持的水果是不同的了。
第三种方法就是记录法的变种,也是老师的解法,我的思路是对记录下来的string数组进行排序,这样两个数组的类型一一对应起来,然后判断起来就方便了。老师的解法是不进行排序,而是通过排除法,比如a记录的是string number boolean,b数组记录的是boolean number string。在不排序的情况下如何对比呢?那就先判断a数组中有没有string,如果有再判断b数组有没有,如果b数组也有。就进行下一步。以此类推
其实解决这题有很多种思路,有一共通点,就是每个元素你都得判断,既然你都要判断,那么判断的形式就会出现不同了,所以接下来就是不同点,第一种就是排除法,拿着a数组的元素去b数组找,找到了就删掉,但我觉得这种方法有点笨。第二种就是记录法,既然都遍历了所有元素,那么把它们记录下来,然后对照一下就知道了。还有第三种吗?欢迎留言。
顺便说一下我的解题思路吧,开始想的很简单,先对两个数组排序,然后循环对比类型,这种思路流产了,因为boolean会解释为0和1,这会跟number类型混在一起,导致排序之后的数据类型并不能一一对应起来。第二种思路就很简单了,遍历两个数组的所有元素并判断所有类型,然后所有的类型以string字符串的形式添加到一个新的数组,然后这个数组里就是源数组的所有数据类型的信息,然后对这个string类型的数据进行排序,就不会出现第一种思路中出现的问题了,最后直接对比两个数组就好了,因为它们都是string类型。
作为一个有Java基础的,表示看起来很轻松,老师讲的很好,就是最后的作业真的太BT了,判断window对象是一个坑,判断两个null又是一个坑,不过说实话,题目设计的非常严谨,在一个坑一个坑的解决过后,代码也变得强壮起来,而且顺便巩固了很多东西,我觉得出这道题的人已经有深厚的功力了,虽然我一边做一边骂你是个BT,但是真的很感谢老师。
最新回答 / 慕移动9181930
不对也网上贴?如果没用jquery就把<script>的内容写在结尾的</body>之前,以确保执行脚本时dom元素全部加载完毕。否则,就会提示找不到元素哦
2018-12-20