@ 基本アルゴリズム:平坦化の配列
// 利用...
// 2つだけ平ら
//
{
LETのARR = [1、[2,3]、[4,5 ]、
LETのARR2は = '' ;
ARR2は = [] .concat(ARR ...)
はconsole.log(ARR2である)
}
// 再帰アルゴリズム
{
LETのARR = [1、[2,3]、[[[4,5。]]]];
平坦化(ARR );
関数平坦化(ARR){
リターン[] .concat(
... arr.map(X => Array.isArray(X)?平坦化(X):X)
)
}
CONSOLE.LOG(平坦化(ARR))
}
// 実行するために60以上のミリ秒の最後の実行から機能絞りアルゴリズム
// アイデア:スロットルを実行した後、ロックは、ロックが偽の実行の場合にのみロックされFUNCは、
// このスロットルロックがfalseに順番に実行の最後の60ミリ秒から離れ必要
{
関数スロットル(FUNC、ディレイ= 60 ){
letのロック = falseに、
リターン(引数...)=> {
IF(ロック){ リターン}
FUNC(argsが...);
ロック = trueに;
のsetTimeout(() => = {ロック偽}、ディレイ)
}
}
}
// 第2スロットル機能、何回演算した後、実装前に
// アイデア:ノンストップ運転、タイマーは、実行私は常に繰り返されるタイマーをオーバーレイ繰り返してきました、
// 必要が最後の実行タイマーが私スロットルをクリアできない、
{
機能スロットル(= 300 FUNC、遅延は、私は= ヌル{)
のリターンを(引数...)=> {
てclearInterval(I);
私は = setTimeout(func.bind(ヌル、引数...)、ディレイ);
// 私はsetTimeoutを((引数...)=> FUNC(引数...)、遅延)=; //同上
}
}
}