Η Javascript χειραγώγηση Array και επανάληψης

ψήφοι
0

Έξοδος από τα παρακάτω κώδικα δίνεται μετά από το πρόγραμμα. Θα πρέπει να επαναλάβει την αξία j με την ακόλουθη σειρά (1,2,3,4), (2,3,4,1), (3,4,1,2), (4,1,2,3), αλλά είναι κατά σειρά (1,2,3,4), (2,3,4), (3,4), (4). Κάθε βοήθεια είναι πολύ εκτίμησα

var RRIntervalArrayDiff = [];
var validRRIntervalCount =0;
var RRIntervalArrayy = [0.62,0.65,0.40,2.54,0.65];
var n = RRIntervalArrayy.length;
for (i=0; i < n; i++){
    for (j=i+1; j<n ;j++){
        document.write(</br>);
        document.write(i is +i+ j is +j);
        var h = (RRIntervalArrayy[j] - RRIntervalArrayy[i]);
        document.write(</br>);
        if(h < 0.12){
            validRRIntervalCount++;
        }
        document.write(h);
        if(j==(n-1)){
            document.write(</br>);
            document.write(validRRIntervalCount)
            break;
        }
    }    
    validRRIntervalCount = 0;
    document.write(</br>);
}      

παραγωγή

i είναι 0 το j είναι 1 0,030000000000000027

i είναι 0 το j είναι 2 -0,21999999999999997

i είναι 0 το j είναι 3 1,92

i είναι 0 το j είναι 4 0,030000000000000027

3

i είναι 1 το j είναι 2 -0.25

i είναι 1 το j είναι 3 1.8900000000000001

i είναι 1 το j είναι 4 0

2

i είναι 2 j είναι 3 2.14

i είναι 2 το j είναι 4 0,25

0

i είναι 3 j είναι 4 -1,8900000000000001

1

Δημοσιεύθηκε 24/10/2019 στις 12:00
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
0

Θα πρέπει να ορίσετε ι ως 0, όταν πρόκειται για το τέλος της σειράς. Και το διπλό βρόχο είναι άχρηστο.

var i=0;
var j=i;
for(i=0; i<arrayLength ; i++){
    j++;
    if(j==arrayLength){
        j=0;
    }
    //Do your stuff
}
Απαντήθηκε 24/10/2019 στις 12:14
πηγή χρήστη

ψήφοι
0

Αντί για τη διαχείριση πολύπλοκων looping, μπορείτε να μετακινήσετε μόνο το στοιχείο σας από την αρχή μέχρι το τέλος.

RRIntervalArrayy.push (RRIntervalArrayy.shift ())?

var RRIntervalArrayDiff = [];
var validRRIntervalCount =0;
var RRIntervalArrayy = [0.62,0.65,0.40,2.54,0.65];
var n = RRIntervalArrayy.length;
for (i=0; i < n; i++){
document.write("--------------------------------");
document.write("</br>");
    for (j=0; j<n ;j++){
        document.write("</br>");
        document.write("array element is:" + RRIntervalArrayy[j] );
        var h = (RRIntervalArrayy[j] - RRIntervalArrayy[i]);
        document.write("</br>");
        if(h < 0.12){
            validRRIntervalCount++;
        }
        document.write(h);
        if(j==(n-1)){
            document.write("</br>");
            document.write(validRRIntervalCount)
            break;
        }
    }
   
    RRIntervalArrayy.push(RRIntervalArrayy.shift());
    validRRIntervalCount = 0;
    document.write("</br>");
} 

Απαντήθηκε 24/10/2019 στις 12:19
πηγή χρήστη

ψήφοι
0

Ακριβώς για να εκτυπώσετε με τη σειρά που χρειάζεστε, δοκιμάστε το εξής:

var RRIntervalArrayDiff = [];
var validRRIntervalCount =0;
var RRIntervalArrayy = [0.62,0.65,0.40,2.54,0.65];
var n = RRIntervalArrayy.length;
  var revert = 0;
for (i=0; i < n; i++){
  revert = 0;
     for (j=i+1; j< n ;j++){
       if(revert == 1 && j == i){
         break;
       }else if(revert == 1 && j != i){
        document.write(j + 1);
         continue;
       }
        document.write(j);
        if(j==(n-1)){
          if(revert == 0){
            j = -1;
            revert = 1;
          }
        }
    }    
    validRRIntervalCount = 0;
    document.write("</br>");
}

Απαντήθηκε 24/10/2019 στις 12:43
πηγή χρήστη

ψήφοι
0

Για να γίνει απολύτως ό, τι θέλετε:

for (i=0; i < n; i++){
  var j = i + 1
  var count = 0
  while (count < n-1){
    if (j == n)
      j = 1
    // do your stuff
    count++
    j++
  }
// do your stuff
}
Απαντήθηκε 24/10/2019 στις 12:54
πηγή χρήστη

ψήφοι
0

Ακριβώς ένα μικρό κομμάτι του μέτρου μαγεία μπορεί να κάνει ο ίδιος εργασίας για εσάς

var RRIntervalArrayDiff = [];
var validRRIntervalCount = 0;
var RRIntervalArrayy = [0.62, 0.65, 0.40, 2.54, 0.65];
var n = RRIntervalArrayy.length;
for (i = 0; i < n; i++) {
  for (j = i; j < n + i; j++) {
    var newJ = j % (n) + 1;
    //use newJ instead of j in your calculations
  }
}
Απαντήθηκε 24/10/2019 στις 13:01
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more