gpt4 book ai didi

javascript - 如何重写此 Javascript 代码以避免 JSHint 警告?

转载 作者:行者123 更新时间:2023-11-30 07:57:16 24 4
gpt4 key购买 nike

我是一名开发使用 HTML、JavaScript (Angular 1.5.0) 和 CSS 的小型 Web 应用程序的新手。我正在使用 Grunt 来处理、jslint、缩小我的 javascript 和 CSS 文件。我的 Javascript 代码包含一个由 d3.js 创建的 SVG 图像。

我目前从 jshint 收到以下警告:

line 1932  col 32  Don't make functions within a loop.

如何重写下面的代码以消除此警告?

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 }

最佳答案

移动这个

function(d){
var bb = this.getBBox();
leftBoundary = bb.x + (bb.width / (-2));
return "translate(" + (bb.width / (-2)) + ", 0)";
}

在 for 循环的范围之外。喜欢:

var transformCallback = function(d) { 
var bb = this.getBBox();
...

然后使用 transformCallback 代替函数。

.attr("transform", transformCallback)

关于javascript - 如何重写此 Javascript 代码以避免 JSHint 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com