2016-04-13 19 views
-1

このコードをループして番号(i = 1,2,3)を変更して重複を避ける方法はありますか?文字列のJavascriptの変更番号

if (bool) { 
    reeks1Getallen = reeks1.splice(0, k1 % (reeks1.length)); 
    reeks2Getallen = reeks2.splice(0, k2 % (reeks2.length)); 
    reeks3Getallen = reeks3.splice(0, k3 % (reeks3.length)); 
} else { 
    reeks1Getallen = reeks1.splice(0, (reeks1.length) - k1 % reeks1.length); 
    reeks2Getallen = reeks2.splice(0, (reeks2.length) - k2 % reeks2.length); 
    reeks3Getallen = reeks3.splice(0, (reeks3.length) - k3 % reeks3.length); 
} 
reeks1 = reeks1.concat(reeks1Getallen); 
reeks2 = reeks2.concat(reeks2Getallen); 
reeks3 = reeks3.concat(reeks3Getallen); 
+3

異なる変数名を使用しないでください。 'var reeks = [...]' – Bergi

+0

各文には3つの文字列がありますが、1つの配列で重複を避けることはできません。 @Bergi –

+1

これらのステートメントには文字列が全く表示されません。 – Bergi

答えて

2

@Bergiの話を聞きます。これは私の教授のプログラムのように見えます。

あなたは今、あなたの列挙変数を取り除くことができない場合は、あなたのコードは、と同等でなければなりません:

for (let [reeks, k] of [[reeks1, k1], [reeks2, k2], [reeks3, k3]]) { 
    const getallen = reeks.splice(0, bool ? k % reeks.length : reeks.length - k % reeks.length); 
    reeks = reeks.concat(getallen); 
} 
1

あなたはインデックスでループオーバーする場合は、オブジェクトの配列を使用する必要があります。この回答は他のものよりもう少し冗長ですが、仕事も完了しなければなりません。

var objList = [ 
    { 
    reeks: [], // fill with your own array 
    reeksGetallen: [], // fill with your own array 
    k: 1 
    }, 
    { 
    reeks: [], // fill with your own array 
    reeksGetallen: [], // fill with your own array 
    k: 2 
    }, 
    { 
    reeks: [], // fill with your own array 
    reeksGetallen: [], // fill with your own array 
    k: 3 
    } 
]; 

for (var i = 0; i < objList.length; i++) { 
    var reeksGetallen = objList[i].reeksGetallen; 
    var reeks = objList[i].reeks; 
    var k = objList[i].k; 

    if (bool) { 
    reeksGetallen = reeks.splice(0, k % reeks.length); 
    } else { 
    reeksGetallen = reeks.splice(0, reeks.length - k % reeks.length); 
    } 

    reeks = reeks.concat(reeksGetallen); 
} 
関連する問題