Non è necessario avere un metodo che scorre semplicemente attraverso un array e chiama un altro metodo con ciascun elemento?

1

Ad esempio, se ci sono più linee da tracciare, potrei fare

function drawLines(lines) {
    lines.forEach(function (line) {
        drawLine(line);
    });
}
function drawLine(line) {
    //...
}

e quindi nella sezione "principale" del codice dovrei semplicemente chiamare drawLines(lines) invece di scrivere un forEach lì.

Ciò impedisce la scrittura di più forEach se c'è più di una sezione di codice che deve rendere alcune linee. Avrei solo bisogno di chiamare drawLines(lines) in qualsiasi posto del genere. Ma allo stesso tempo, sembra semplicemente una cosa stupida da fare.

(La cosa delle linee è solo un esempio ... Sto solo parlando del concetto generale di "fare qualcosa con ogni elemento in un array").

    
posta clb 08.09.2017 - 13:04
fonte

2 risposte

1

Questa è in realtà una buona domanda, e alquanto sottile. Presumo che il tuo stile sia orientato agli oggetti? Se stai usando funzionale o imperativo, la risposta sarebbe diversa.

Un array non ha altre semantiche che una collezione di elementi, quindi i clienti dovrebbero trattarlo come tale, cioè utilizzare operazioni di raccolta come forEach .

Ma la domanda è se le linee dovrebbero essere passate come una matrice in primo luogo. Dato che sei tentato di scrivere un metodo drawLines() che tratti l'array di linee nel suo complesso, indica che dovresti considerare di incapsulare l'array di linee in un oggetto Figure distinto. Avresti un metodo Figure.draw() , che internamente chiamerebbe drawLine() (o preferibilmente line.draw() ) su ogni riga.

    
risposta data 08.09.2017 - 13:34
fonte
1

Se è più di una linea di due linee, lo farei in questo modo. Disegnare una singola riga è facile, ma il disegno in generale può comportare una serie di passaggi e può essere fonte di confusione per la prossima persona che viene avanti, per questo motivo generalmente inserirò la logica di disegno in un metodo come questo. Ha in qualche modo a che fare con il tema e trasformarsi in pezzi di dimensioni mordenti. Il disegno utilizza diversi concetti per i loop e le strutture dati e separa il disegno significa che la persona che lo guarda deve solo pensare al disegno e quindi guarda al ciclo che deve solo capire che il disegno viene eseguito.

    
risposta data 08.09.2017 - 13:35
fonte

Leggi altre domande sui tag