2016-04-13 17 views
-1

Bu kodun içinden geçmenin ve sayıları değiştirmenin bir yolu var mı (i = 1,2,3), böylece çoğaltmayı önleyebilirsiniz?Dizede Javascript değiştirme numarası

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

Farklı değişken adları kullanmayın. Bir dizi kullan 'var reeks = […] ' – Bergi

+0

Her deyimde 3 değişen dizeleri vardır, tek bir diziyle çoğaltma kaçınmak olmaz, değil mi? @Bergi –

+1

Bu ifadelerde hiç dizgi göremiyorum? – Bergi

cevap

2

@Bergi'nin söylemesi gerekenleri dinleyin; Bu tıpkı profesörlerimin programlarından birine benziyor. Eğer bir dizin ile döngü üzerinde istiyorsanız

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

Sen nesneleri dizisi kullanmalısınız: Eğer şu anda sayılan değişkenler kurtulmak yapamıyorsanız

, kodunuz eşdeğer olmalıdır. Bu cevap diğerlerinden biraz daha ayrıntılıdır, ancak işin de yapılması gerekir:

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); 
}