参考后算解决了,但还有几点不清楚.

来源:1-6 编程练习

红星鸡尾酒

2015-01-20 23:38

首先,中间循环体是循环判断变量的类型,通过typeOf函数,返回值是字符串然后赋值给变量t1,t2.

可这个

        if(map1[t1])
            map1[t1]++;
        else
            map1[t1] = 1;
        if(map2[t2])
            map2[t2]++;
        else
            map2[t2] = 1;

什么意思,map是数据结构中的键值对么?那这个赋值 没有太懂.

还有就是这个 最后的比较了

if(map1[TYPES[i]]!== map2[TYPES[i]])
        return false;


写回答 关注

2回答

  • Bosn
    2015-01-21 05:59:09

    对对象不了解没关系,下周一更新的第四章《对象》章节建议仔细学习哦,在这之前快把二、三章搞清楚吧~~~

  • Bosn
    2015-01-21 05:58:06

    map1就是对象呀,t1是对象的key,程序里作为类型的标识。

    而值是该类型的出现次数。


    由于题目要求判断时忽略顺序,所以用map记录每种类型的出现次数一致即可。例如:

    map1的最后结果: {'number' : 1, 'string' : 5, 'null' : 3};

    map2的最后结果: {'number' : 1, 'null' : 3, 'string' : 5};

    如此来,两组数据number都出现1,次,string都是5次,null都是3次,这样就符合题目中要求的“同构”啦


    反之,若遍历这些数据类型发现任何一个出现次数不同,就是异构。(最后的比较)


JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281101 学习 · 1020 问题

查看课程

相似问题