为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
好吧,我现在终于明白了,原来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元素全部加载完毕。否则,就会提示找不到元素哦
教程过时了。js已有块级作用域。如今{a:1,b:2}并不会报错。现在已支持ES6新特性。
这个课真的是良心课程,老师的水平高,而且这个课还免费,对我的帮助很大第一次写评论,建议大家反复看看,老师以后要是有实战的可也会买的
数组长度最长的是 2的32次幂
学到这里,突然感觉一脸懵逼,无从下手啊

最新回答 / White_Windmill
是传入参数的原型指向赋值的参数
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消