配列の配列があり、内側の配列の一部にはさらに別のネストされた配列があります。そうでない人もいます。最上位の配列要素をループし、内部配列がある場合はそれらをループします。ない場合は、ありません。とか、そう思います。
なんらかの理由で、反復処理でネストされた配列のない配列が見つかると、コンソールに「型エラー」が未定義と表示されます...ネストされた配列が定義されていないため、技術的には正しいです。ただし、ネストされた if ステートメントでは、これを評価できないと思いました。何かご意見は?
たとえば、animation[0][3] は配列ですが、animations[1][3] は未定義です。だから私のifループにはネストされた
var a = animations.shift();
if ( a[3] )
{
console.log( 'a[3] is: ' + a[3] )
}
else
{
return;
}
a[3] が存在する場合はコンソールにログを記録し、コンソールに出力せずにエスケープしない場合は、それを読みました...それでも、コンソールは未定義の評価を生成し続けます。それは単にその存在をテストすると未定義のエラーが返されるためですか? ネストされた配列を持たない配列に遭遇するたびに、このエラーがポップアップしないようにするにはどうすればよいですか?
ありがとう。
var animations = [
['.pcba','fadeIn', [1000], [
['.pcb_cad', 'fadeIn', [1000] ]
]
],
['.pcba', 'delay', [2000] ],
['.pcba','fadeOut', [1000], [
['.heatGenComps', 'fadeIn', [1000] ],
['.arrows', 'fadeIn', [1000] ]
]
],
['.heatGenComps', 'delay', [2000] ],
['.heatGenComps', 'fadeOut', [1000], [
['.arrows', 'fadeOut', [1000] ],
['.pcb_cad_cfd', 'fadeIn', [1000] ],
['.wePredOpTemps', 'fadeIn', [1000] ]
]
],
];
そして、私はそれらを次のように繰り返します:
iter();
function iter(){
if (!animating) return;
var a = animations.shift();
if (a) {
var el = a[0];
var fn = a[1];
var args = a[2];
$.fn[ a[1] ].apply( $( a[0] ), a[2] ).promise().done(iter);
if ( a[3] )
{
var secondary = a[3];
console.log( 'a[3] is: ' + a[3] );
secondaryAnime();
function secondaryAnime(){
b = secondary.shift();
console.log('secondary is: ' + b );
$.fn[ b[1] ].apply( $( b[0] ), b[2] );
secondaryAnime();
};
}
else
{
return;
}
}
else
{
}
};