问答详情
源自:1-6 编程练习

这段 是否加join()似乎对结果没什么影响 什么呢

                    for(var i= 0;i<len;i++){

                        // 数组1的类型列表字串

                        var item1 = arr1[i], typeFirst = typeOf(item1);

                        if(key1.indexOf(typeFirst)<0){

                            key1.push(typeFirst);

                        }

                        

                        // 数组2的类型列表字串

                        var item2 = arr2[i],typeSecond = typeOf(item2);

                        if(key2.join().indexOf(typeSecond)<0){

                            key2.push(typeSecond);

                        } 

                    }

                    key1 = key1.sort();

                    key2 = key2.sort();

                    // 类型字串比较


key2.join().indexOf(typeSecond)

key2..indexOf(typeSecond)

结果是一样的,indexOf不应该是对 字符串使用的么,为什么对数组也可以直接使用了呢

这样做有隐患么,这其中是隐性转化还是原型链的原因

提问者:第二热情 2016-10-24 21:25

个回答

  • 破旧的时光机3662066
    2017-09-12 13:34:20

    indexOf()也可以用在数组上的。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

  • qq_兜里有米_04383258
    2017-06-13 16:41:51

    因为key1=key1.sort(),sort()返回的就是字符串

  • 慕粉1313325109
    2016-10-25 11:29:30

    字符串也可以看成是数组的一种,很多的方法可以相互使用,效果可视为字符串是字符数组