Ich bin ein Neuling, der eine kleine Webanwendung entwickelt, die HTML, JavaScript (Angular 1.5.0) & CSS verwendet. Ich benutze Grunt, um meine Javascript- und CSS-Dateien zu verarbeiten, jslint, zu minimieren. Mein Javascript-Code enthält ein SVG-Bild, das von d3.js erstellt wurde.Wie schreibe ich diesen Javascript-Code um JSHint Warnung zu vermeiden?
ich zur Zeit die folgende Warnung von jshint bekommen:
line 1932 col 32 Don't make functions within a loop.
Wie kann ich den Code neu schreiben, diese Warnung zu beseitigen?
Line #1924 for (var j = 0; j <= 5; j++) {
Line #1925 var myVarX = j * 100;
Line #1926 var myVarY = j * 200;
Line #1927 var myText = self.svgContainer.append("text")
Line #1928 .attr("x", myVarX)
Line #1929 .attr("y", myVarY)
Line #1930 .text("Hello World")
Line #1931 .attr("fill", "black")
Line #1932 .attr("transform", function(d){
Line #1933 var bb = this.getBBox();
Line #1934 leftBoundary = bb.x + (bb.width/(-2));
Line #1935 return "translate(" + (bb.width/(-2)) + ", 0)";
Line #1936 }
Line #1937 )
Line #1938 if (leftBoundary > centerX + 5)
Line #1939 myText.style("display", "block");
Line #1940 else
Line #1941 myText.remove();
Line #1942 }
Definieren Sie es außerhalb der Schleife und rufen Sie es mit '.attr ('transform', NAMEOFYOURFUNCTION)'. – str
jshint warnt, da jede neue Funktion für die Schleifeniteration erstellt wird und sich die Leistung stark unterscheidet. @str hat Recht, nur diese Funktion außerhalb der Schleife Bereich definieren und rufen Sie –