Javascript 为什么';这个循环不能做我可以手动做的事情吗?

Javascript 为什么';这个循环不能做我可以手动做的事情吗?,javascript,arrays,loops,for-loop,Javascript,Arrays,Loops,For Loop,我有一个不起作用的函数: function gapAll( ary2, ary )//perform gap() on all of the values of ary2 { for( i = 0; i < ary2.length; i++ ) { gap( ary2[ i ], ary ); } } 我的目标是通过一个循环来完成,而不是手动完成。下面是我所有的代码…我搞不懂…我只想循环ary2的索引并使用它们作为gap。我已将代码缩短为仅此函数使

我有一个不起作用的函数:

function gapAll( ary2, ary )//perform gap() on all of the values of ary2
{
    for( i = 0; i < ary2.length; i++ )
    {
        gap( ary2[ i ], ary );
    }
}
我的目标是通过一个循环来完成,而不是手动完成。下面是我所有的代码…我搞不懂…我只想循环ary2的索引并使用它们作为gap。我已将代码缩短为仅此函数使用的项:

<!DOCTYPE html>
<html>
    <head>
        <meta charset = "utf-8">
        <title>test</title>

        <style>
            html
            {
                background-color: #0f0f0f;
                color: #ccc;

                font-family:Arial;
                font-size:90%;
            }
        </style>
    </head>

    <body>
        <header>
        </header>

        <section id = "body">
            <h3>result</h3>
            <p id = "trg">...</p>
        </section>

        <footer>
        </footer>   

        <script>
            /*|||||||||||||||||||||||||||||||||||||| BASE ARRAYS ||||||||||||||||||||||||||||||||||||||*/

            digits = [];//digits 1 - 9
            for( i = 0; i < 10; i++ )
            {
                digits.push( i );
                window[ 'digit' + i ] = 0;
            } digitsCpy = digits.slice( 0 );


            /*||||||||||||||||||||||||||||||||||||||| FUNCTIONS |||||||||||||||||||||||||||||||||||||||*/


            function gapAll( ary2, ary )//gap
            {
                for( i = 0; i < ary2.length; i++ )
                {
                    gap( ary2[ i ], ary );
                }
            }

            function gap( v, ary )//gap
            {
                v = v.toString();
                places = [];
                if( v.toString().length == 1 )  
                {
                    var counter = 0;
                    var identifier = new RegExp( v );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        {  places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 

                    window[ 'digit' + v ] = gaps.slice( 0 );

                    if( window[ 'digit' + v ] == ''  )
                    { window[ 'digit' + v ] = 0; }
                }
                else if( v.toString().length == 2 )
                {
                    x = v.slice( 0, 1 );
                    y = v.slice( 1, 2 );

                    var counter = 0;
                    var identifier = new RegExp( x + ".*" + y + "|" + y + ".*" + x );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        { places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 

                    window[ 'pair' + v ] = gaps.slice( 0 );

                    if( window[ 'pair' + v ] == ''  )
                    { window[ 'pair' + v ] = 0; }
                }
                else if( v.toString().length == 3 ) 
                {
                    x = v.slice( 0, 1 );
                    y = v.slice( 1, 2 );
                    z = v.slice( 2, 3 );

                    var counter = 0;
                    var identifier = new RegExp
                    ( 
                        x + ".*" + y + ".*" + z + "|" + x + ".*" + z + ".*" + y + "|" + 
                        y + ".*" + x + ".*" + z + "|" + y + ".*" + z + ".*" + x + "|" + 
                        z + ".*" + x + ".*" + y + "|" + z + ".*" + y + ".*" + x 
                    );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        { places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 
                    window[ 'set' + v ] = gaps.slice( 0 );

                    if( window[ 'set' + v ] == ''  )
                    { window[ 'set' + v ] = 0; }
                }
            }

            function addDim( m )//add dimension to m
            {
                if( Array.isArray( m ) )
                {
                    for( i = 0; i < m.length; i++ )
                    {
                        if( m[ i ].length > 1 )
                        {
                            m[ i ] = m[ i ].split( '' );
                        }
                    }
                    return m;
                }
                else
                {
                    ary = m.split( ' ' );
                    return ary;
                }
            }

            /*|||||||||||||||||||||||||||||||||||||||   MAIN   ||||||||||||||||||||||||||||||||||||||||*/

            ary = [ 409,879,483,465,907,154,838,847,432,434,842,401 ];
            gapAll( digits, ary );
            document.getElementById( 'trg' ).innerHTML = digit3;
        </script>
    </body>
</html>

测验
html
{
背景色:#0f0f;
颜色:#ccc;
字体系列:Arial;
字体大小:90%;
}
后果

/*||||||||||||||||||||||||||||||||||||||基阵列||||||||||||||||||||||||||||||||||||||*/ 数字=[]//数字1-9 对于(i=0;i<10;i++) { 数字推送(i); 窗口['数字'+i]=0; }digitsCpy=数字。切片(0); /*|||||||||||||||||||||||||||||||||||||||功能|||||||||||||||||||||||||||||||||||||||*/ 函数gapAll(ary2,ary)//gap { 对于(i=0;i<2.length;i++) { gap(ary2[i],ary); } } 函数间隙(v,ary)//间隙 { v=v.toString(); 学额=[]; 如果(v.toString().length==1) { var计数器=0; var标识符=新的RegExp(v); 对于(i=0;i0) { j=i-1; 间隙[i]=位置[i]-位置[j]-1; } } 窗口['数字'+v]=间隙。切片(0); 如果(窗口['数字'+v]='') {window['数字'+v]=0;} } else if(v.toString().length==2) { x=v.slice(0,1); y=v.切片(1,2); var计数器=0; var标识符=新的RegExp(x+“*”+y+“|”+y+“*”+x); 对于(i=0;i0) { j=i-1; 间隙[i]=位置[i]-位置[j]-1; } } 窗口['pair'+v]=间隙。切片(0); 如果(窗口['对'+v]='') {window['pair'+v]=0;} } else if(v.toString().length==3) { x=v.slice(0,1); y=v.切片(1,2); z=v.slice(2,3); var计数器=0; var标识符=新的RegExp ( x+“*”+y+“*”+z+“|”+x+“*”+z+“*”+y+“|”+ y+“*”+x+“*”+z+“|”+y+“*”+z+“*”+x+“|”+ z+“*”+x+“*”+y+“|”+z+“*”+y+“*”+x ); 对于(i=0;i0) { j=i-1; 间隙[i]=位置[i]-位置[j]-1; } } 窗口['set'+v]=间隙。切片(0); 如果(窗口['设置'+v]='') {window['set'+v]=0;} } } 函数addDim(m)//向m添加维度 { if(数组isArray(m)) { 对于(i=0;i1) { m[i]=m[i]。拆分(“”); } } 返回m; } 其他的 { ary=m.分裂(“”); 回归分析; } } /*|||||||||||||||||||||||||||||||||||||||主要||||||||||||||||||||||||||||||||||||||||*/ ary=[409879483465907154838847432434842401]; gapAll(数字,ari); document.getElementById('trg')。innerHTML=digit3;
为了便于理解,
gap(v,ary)
函数的整个思想是查找数组中的“间隙”或值之间的空间。所以如果我在数组中寻找5[5,2,5]<代码>间隙(5,ary)将返回(0,1)。因为5在第一个索引(0)处,然后在第三个索引处重复之前跳过了1个索引(2)

这可能很简单,因为我是个新手。谢谢
<!DOCTYPE html>
<html>
    <head>
        <meta charset = "utf-8">
        <title>test</title>

        <style>
            html
            {
                background-color: #0f0f0f;
                color: #ccc;

                font-family:Arial;
                font-size:90%;
            }
        </style>
    </head>

    <body>
        <header>
        </header>

        <section id = "body">
            <h3>result</h3>
            <p id = "trg">...</p>
        </section>

        <footer>
        </footer>   

        <script>
            /*|||||||||||||||||||||||||||||||||||||| BASE ARRAYS ||||||||||||||||||||||||||||||||||||||*/

            digits = [];//digits 1 - 9
            for( i = 0; i < 10; i++ )
            {
                digits.push( i );
                window[ 'digit' + i ] = 0;
            } digitsCpy = digits.slice( 0 );


            /*||||||||||||||||||||||||||||||||||||||| FUNCTIONS |||||||||||||||||||||||||||||||||||||||*/


            function gapAll( ary2, ary )//gap
            {
                for( i = 0; i < ary2.length; i++ )
                {
                    gap( ary2[ i ], ary );
                }
            }

            function gap( v, ary )//gap
            {
                v = v.toString();
                places = [];
                if( v.toString().length == 1 )  
                {
                    var counter = 0;
                    var identifier = new RegExp( v );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        {  places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 

                    window[ 'digit' + v ] = gaps.slice( 0 );

                    if( window[ 'digit' + v ] == ''  )
                    { window[ 'digit' + v ] = 0; }
                }
                else if( v.toString().length == 2 )
                {
                    x = v.slice( 0, 1 );
                    y = v.slice( 1, 2 );

                    var counter = 0;
                    var identifier = new RegExp( x + ".*" + y + "|" + y + ".*" + x );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        { places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 

                    window[ 'pair' + v ] = gaps.slice( 0 );

                    if( window[ 'pair' + v ] == ''  )
                    { window[ 'pair' + v ] = 0; }
                }
                else if( v.toString().length == 3 ) 
                {
                    x = v.slice( 0, 1 );
                    y = v.slice( 1, 2 );
                    z = v.slice( 2, 3 );

                    var counter = 0;
                    var identifier = new RegExp
                    ( 
                        x + ".*" + y + ".*" + z + "|" + x + ".*" + z + ".*" + y + "|" + 
                        y + ".*" + x + ".*" + z + "|" + y + ".*" + z + ".*" + x + "|" + 
                        z + ".*" + x + ".*" + y + "|" + z + ".*" + y + ".*" + x 
                    );
                    for( i = 0; i < ary.length; i++ )
                    {
                        if( identifier.test( ary[ i ] ) == true )
                        { places.push( i ) }
                    } 

                    var gaps = places.slice( 0 );

                    for( i = 0; i < places.length; i++ )
                    {
                        if( i > 0 )
                        {
                            j = i - 1;
                            gaps[ i ] = places[ i ] - places[ j ] - 1;
                        }
                    } 
                    window[ 'set' + v ] = gaps.slice( 0 );

                    if( window[ 'set' + v ] == ''  )
                    { window[ 'set' + v ] = 0; }
                }
            }

            function addDim( m )//add dimension to m
            {
                if( Array.isArray( m ) )
                {
                    for( i = 0; i < m.length; i++ )
                    {
                        if( m[ i ].length > 1 )
                        {
                            m[ i ] = m[ i ].split( '' );
                        }
                    }
                    return m;
                }
                else
                {
                    ary = m.split( ' ' );
                    return ary;
                }
            }

            /*|||||||||||||||||||||||||||||||||||||||   MAIN   ||||||||||||||||||||||||||||||||||||||||*/

            ary = [ 409,879,483,465,907,154,838,847,432,434,842,401 ];
            gapAll( digits, ary );
            document.getElementById( 'trg' ).innerHTML = digit3;
        </script>
    </body>
</html>
function gapAll(ary2, ary) {
    for(var i = 0; i < ary2.length; i++) {
        gap(ary2[i], ary);
    }
}
for (var i = 0; i < ary2.length; i++) {
    gap(i, ary);
}
for (var i = 0; i < ary2.length; i++) {
    gap(ary2[i], ary);
}