问答详情
源自:2-11 jQuery的each迭代器

数组貌似也可以用for in 遍历,分别处理有必要吗

if (isArray) {
           for (; i < length; i++) {
               value = callback.apply(obj[i], args);

               if (value === false) {
                   break;
               }
           }
       } else {
           for (i in obj) {
               value = callback.apply(obj[i], args);

               if (value === false) {
                   break;
               }
           }

}


提问者:yzlcd 2014-11-22 18:32

个回答

  • paraofheaven
    2016-04-07 11:23:31

    厉害厉害

  • 艾伦Aaron
    2014-11-24 09:32:27

    首先做框架要考虑兼容与性能问题

    for in 语句对数组对象进行遍历潜在的bug在于:如果原生Array类被其他的js脚本库进行了原型扩展(比如多加一个toJSON方法即Array.prototype.toJSON=xxxx),那么用for in遍历扩展后的Array对象的逻辑将与遍历原生Array对象的逻辑发生差异。