js各种循环的区别

2017-03-21  本文已影响0人  佳句欣赏

for(var i =0,len=arr.length;i<len;i++){}


**for(var key in obj){} **


foreach

var arr = [1,2,3,4,5,6,4,3,5];
arr.forEach(function (item,index,arr) {
    console.log(item,index,arr)
},null)

for of

var arr = [1,2,2,3,3,3];
for(var item of arr){
    console.log(item)
}

jquery 中的each
源码: 有args参数与没有这个参数是不一样的

    each: function( object, callback, args ) {
        var name, i = 0,
            length = object.length,
            isObj = length === undefined || jQuery.isFunction( object );
        if ( args ) {
            if ( isObj ) {
                for ( name in object ) {
                    if ( callback.apply( object[ name ], args ) === false ) {
                        break;
                    }
                }
            } else {
                for ( ; i < length; ) {
                    if ( callback.apply( object[ i++ ], args ) === false ) {
                        break;
                    }
                }
            }
        // A special, fast, case for the most common use of each
        } else {
            if ( isObj ) {
                for ( name in object ) {
                    if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
                        break;
                    }
                }
            } else {
                for ( ; i < length; ) {
                    if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
                        break;
                    }
                }
            }
        }
        return object;
    },
上一篇 下一篇

猜你喜欢

热点阅读