有人可以告诉我如何用循环替换以下 javascript 代码吗?

2023-12-14

dataBase[0].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[0].columnline]); });

dataBase[1].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[1].columnline]); });

dataBase[2].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[2].columnline]); });

dataBase[3].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[3].columnline]); });

dataBase[4].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[4].columnline]); });

dataBase[5].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[5].columnline]); });

dataBase[6].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[6].columnline]); });

dataBase[7].valueline = d3.svg.line()
.x(function(d) { return x(d["Date"]); })
.y(function(d) { return y(d[dataBase[7].columnline]); });

我已经尝试过以下声明:

for (var i = 0; i < dataBase.length; i++) {

dataBase[i].valueline = d3.svg.line()
    .x(function(d) { return x(d["Date"]); })
    .y(function(d) { return y(d[dataBase[i].columnline]); });

}

但这不起作用,因为 i 在

function(d) { 
  return y(d[dataBase[i].columnline]); 
} 

i 与循环中的 i 不同。我还尝试了 stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example 中的绑定技术

function createfunc(count) {
    return function(d) {
        return y(d[dataBase[count].columnline]);
    };
}
for (var i = 0; i < dataBase.length; i++) {

dataBase[i].valueline = d3.svg.line()
    .x(function(d) { return x(d["Date"]); })
    .y(createfunc(i));
}

但这也导致了错误。有人能告诉我如何将这八行代码变成一个循环吗?


正如上面的评论者所说,这几乎肯定是一个范围问题,但是在没有看到周围代码的情况下很难确切地说出什么样的范围问题。如果您在 JavaScript 中遇到作用域问题,一个通常的好主意是尽可能多地包装在独立函数中,因为它们每个都有自己的作用域并且可以在一定程度上充当闭包。也许尝试这样的事情:

function xFunc(d) {
    return function (d) { return x(d["Date"]) };
}

function yFunc(d, i) {
    return function (d) { return y(d[dataBase[i].columnline]) };
}

for (var i = 0; i < dataBase.length; i++) {

    dataBase[i].valueline = d3.svg.line()
        .x(xFunc(d))
        .y(yFunc(d, i));

}

我不知道这是否真的有效,即使有效,也可能有更好的方法来构建这种封闭。如果您不熟悉立即调用函数表达式,请查看这个帖子,并考虑找到一种方法将它们应用到您的代码中。它们非常适合防止 JavaScript 中的范围问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有人可以告诉我如何用循环替换以下 javascript 代码吗? 的相关文章

  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • Google 饼图未显示所有数据行

    我正在尝试绘制人口与国家名称的关系图 我发现 Google 可视化库仅渲染前几个 实际上数字似乎是随机的 具体取决于我使用的数据 有时添加 其他 条目 但它没有t 实际上具有其余条目的值 Example 1 With all countri
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • 如何在 Swift 中使用函数数组

    我已经阅读了我可以在这里找到的所有关于函数数组的帖子 太棒了 你能做到 我估计 但没有一篇文章实际上展示了如何使用它们 至少不是我想要做的 这就是我想要的 它们都可以采用相同的参数 但这不是必需的 这篇文章很接近 将允许我循环执行每个函数
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 有没有办法防止输入 type=“number” 获得多个点值?

    我只想得到十进制值 如 1 5 0 56 等 但它允许多个点 有什么办法可以预防吗 您可以使用pattern属性
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch
  • 在派生类中访问基类变量

    class Program static void Main string args baseClass obj new baseClass obj intF 5 obj intS 4 child obj1 new child Consol

随机推荐

  • 在 AngularJS 单元测试中模拟 $modal

    我正在为一个控制器编写一个单元测试 该测试会启动一个 modal并使用返回的承诺来执行一些逻辑 我可以测试触发 modal 的父控制器 但我无法弄清楚如何模拟成功的承诺 我尝试了多种方法 包括使用 q and scope apply 强制解
  • 增加 IE7 中列表框的高度

    我有一个列表框
  • 查找丢失的序列间隙 mysql [重复]

    这个问题在这里已经有答案了 可能的重复 如何在SQL中查找组内序列中的缺失值 我的列的值如下 MAC00006300 MAC00006301 MAC00006302 MAC00006305 LED00006002 LED00006008 A
  • 使用 Thread.sleep() 限制 Libgdx 游戏中的 FPS 不起作用

    我正在使用 libgdx 为 android 开发一个小游戏 并希望将 fps 限制为 30 以节省电池 问题是它不起作用 fps 只是从 60 下降到 56 这是代码部分 位于渲染部分的末尾 System out print nFPS G
  • 如何在 android 中的 Imageview 上制作正弦波?

    我想创建与此类似的图像 可以用XML来完成吗 如果没有 我将如何缩放这样形状的图像 是的 这是可能的 你可以使用vactor drawable for it
  • 更改 Xcode 中的工作目录

    我设法使用 cmake G Xcode 在 Xcode 中运行我的 C 项目 现在我想调试它 因为它提供了很好的 gdb 前端 但是我需要更改执行 gdb 的工作目录 否则它将无法工作 它需要从相对于工作目录路径的文件中读取一些数据 我能做
  • asp.net 母版页以什么顺序执行

    我在我的项目中使用母版页 我想知道母版页和网页的页面加载顺序以及脚本的执行顺序 母版页子控件初始化 首先初始化母版页中包含的所有服务器控件 内容页子控件初始化 初始化内容页中包含的所有服务器控件 母版页初始化 母版页本身被初始化 内容页初始
  • 如何在 OSGi (Apache Felix) 中处理不同的日志记录解决方案

    在 OSGi 中 日志记录前端和实际输出之间是分离的 因此 通过使用日志服务 这并不意味着例如将任何内容写入控制台 这就是一个日志读取服务为 负责 在我当前的运行时 我正在添加org apache felix log它带来了一个 LogRe
  • 是否有 VS Code API 函数可以返回所有打开的文本编辑器及其视图列?

    I got a 功能要求为了我的扩展保存和恢复选项卡为了实现它 我需要能够获得所有 编辑器组 中所有打开的文本编辑器的列表 在 API 1 46 中 可以获得所有可见文本编辑器的列表 每组只有一个文本编辑器 和所有打开的文本文档的列表 与使
  • 为什么Windows服务不调用OnStart方法?

    我创建了一个 Windows 服务应用程序 其中包含OnStart方法 该方法将从中读取路径应用程序配置文件 创建一个对象 然后服务写入该对象的重写ToString 方法到一个文件StreamWriter 当我使用 手动启动此服务 时 这是
  • php三元运算符格式化

    这有效
  • C / C++ 中的关键字重新定义

    我可以在 C 中使用 define 重新定义关键字吗 我在 C 标准中发现了这一点 ISO IEC 14882 1998 和 ISO IEC 14882 2003 17 4 3 1 1 宏名称 lib macro names 2 包含标题的
  • Xaml 中的动态列绑定

    这是之前帖子的后续问题 here 我有一些 标题 信息存储为 Dictionary
  • 每秒更改图片框中的图像 C#

    我正在创建一个 WinForm 应用程序 它用网络摄像头拍摄一个人的照片 现在正在尝试创建倒计时效果 我有 4 张图像想要循环浏览 但事实证明这很难完成 我使用了秒计时器 但所发生的只是应用程序有点滞后 然后显示最后一张图像 有谁知道我如何
  • SetBounds 和 SetBoundsCore 有什么区别

    在 WinForms 中 您可以使用以下命令设置控件的边界SetBounds 或者如果您已经创建了用户控件 则可以覆盖SetBoundsCore 我想知道 他们的做法相同还是有什么不同 首先SetBounds不是虚拟的 因此如果您需要在设置
  • VSCode 仅导航回本地到当前文件?

    VSCode 中是否有一个选项可以限制 向后导航 这样它只会带您返回光标在当前文件中最后一个位置 这是当前的行为 在文件A上 打开方法foo 在文件A上 打开方法栏 关于文件B 打开方法baz 在文件A上 打开方法bor 如果我在 bor
  • 通过匹配键组合两个不相等的数组

    我想将下面的两个数组合并为一个 更具体地说 我想将第二个数组的内容添加到第一个数组中的匹配键 最终数组中的键应该具有两个数组的匹配键的内容 Array 123456789 404045862944400 gt 192 123456789 4
  • Chef apt_repository 开始失败并出现 SSL 验证错误

    从过去 2 天开始 我们开始看到与 apt repository 资源相关的 Chef 执行失败 厨师 客户执行也遇到了类似的失败 主厨独奏版本 12 19 36 操作系统 Ubuntu 14 中的 Ubuntu v18 请参阅 Chef
  • JavaScript 会成为一种“正确的”基于类的语言吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我指的是 MDN 关于 JavaScript 的 未来保留字 的文章 用于新的严格模式 https developer mozilla org en US docs Web JavaScr
  • 有人可以告诉我如何用循环替换以下 javascript 代码吗?

    dataBase 0 valueline d3 svg line x function d return x d Date y function d return y d dataBase 0 columnline dataBase 1 v