Leggibilità del codice su variabili di ciclo non banali [closed]

-1

Il mio collega e io discutiamo sulla leggibilità del codice su cicli semplici. Supponiamo che un metodo utilizzi un parametro intero e faccia qualche operazione sugli elementi di un array in base al parametro. per esempio

Per semplicità, supponiamo che i limiti dell'array siano trascurabili e che non vi siano errori generati dai codici che ho presentato di seguito.

function doSomeOp(targetIndex) {
  for(var i = targetIndex + 5; i < someArray.length; i++) {
    someArray[i] = 42;
  }
}

al contrario di

function doSomeOp(targetIndex) {
  for(var i = targetIndex; i < someArray.length; i++) {
    someArray[i + 5] = 42;
  }
}

C'è qualche vantaggio nel definire il parametro loop su valori più semplici come "0", "targetIndex", "array.length" e quindi definire la business logic quando si utilizza quel parametro di loop?

    
posta JuniorDev 28.10.2015 - 10:07
fonte

1 risposta

4

"Per semplicità, supponiamo che i limiti dell'array siano trascurabili e che non vi siano errori generati dai codici presentati di seguito."

Quindi hai introdotto un errore nel tuo programma dimenticando di aggiungere -5 perché il secondo ne ha bisogno in due punti.

Inoltre, questo è solo imho, ma il primo ciclo funziona più come la mia mente funziona quando interagisci con il ciclo (e funziona più come se lo avessi modificato per un iteratore).

Nella misura in cui questo problema incredibilmente marginale è importante, il primo è meglio.

// The second fixed:
function doSomeOp(targetIndex) {
  for(var i = targetIndex; i < someArray.length - 5; i++) {
    someArray[i + 5] = 42;
  }
}
    
risposta data 28.10.2015 - 10:17
fonte

Leggi altre domande sui tag