2017-11-15 3 views
0

Ich versuche, meine Funktion zu ändern, um eine andere Anzahl von Argumenten zu akzeptieren, so zum Beispiel die Argumente könnten (Poly1, Poly2) oder (Poly1, Poly2, Poly3) und so weiter.create Funktion, die mehrere Argumente akzeptiert

Das Problem, das ich habe ist, dass ich nicht sicher bin, wie der Variablennamen

erhöhen Wie kann ich die Funktion unten in eine Funktion einzuschalten, die eine Reihe von verschiedenen Argumenten und Schleife durch sie akzeptieren. Ich würde eine funktionelle Art und Weise bevorzugen, dies zu tun, anstatt eine for-Schleife, wenn möglich

function UseWicketToGoFromGooglePolysToWKT(poly1, poly2, poly3, poly4) { 
    var wicket = new Wkt.Wkt(); 

    wicket.fromObject(poly1); 
    var wkt1 = wicket.write(); 

    wicket.fromObject(poly2); 
    var wkt2 = wicket.write(); 

    wicket.fromObject(poly3); 
    var wkt3 = wicket.write(); 

    wicket.fromObject(poly4); 
    var wkt4 = wicket.write(); 

    return [wkt1, wkt2, wkt3, wkt4]; 
} 

Mein Versuch

function UseWicketToGoFromGooglePolysToWKT(...args) { 
    args.map(item, i => { 
    wicket.fromObject(`poly${i}`); 
    var wkt + i = wicket.write(); 
    }) 
+0

Also, Tom, hat entweder Antwort Ihre Frage beantworten? – Cerbrus

+0

ja Ihre Implementierung ist was ich wollte –

Antwort

2

Sie nah waren.
Sie mussten nur das Ergebnis von .write() zurückgeben und das Array aus .map() zurückgeben.
Sie fehlten auch die new Wkt.Wkt(); Aufruf:

function UseWicketToGoFromGooglePolysToWKT(...args) { 
    var wicket = new Wkt.Wkt(); // this was missing 

    return args.map(item => { // return this. Also, the `i` isn't necessary. 
    wicket.fromObject(item); // pass `item` here. 
    return wicket.write(); // return instead of variable assignment 
    }); 
} 
Verwandte Themen