类型参数不可分配给字符串

2024-03-30

我有一个格式化的 json 数据,我想在 d3 中使用它来绘制层次结构。它正在处理旧数据,但在 json 数据中添加更多维度后,出现以下错误。

类型参数 '{ name: string;孩子们:{ 组:数量;名称:字符串; }[];组:数量; }[]' 不可分配给“只读字符串[]”类型的参数。 输入 '{ 名称:字符串;孩子们:{ 组:数量;名称:字符串; }[];组:数量; }' 不可分配给类型“string”。

我重新格式化的数据的输出如下,它是使用 @Dacre Denny 的答案中的代码生成的通过 JavaScript 将 Json 数据更改为新格式 https://stackoverflow.com/questions/59448748/change-json-data-into-new-format-by-javascript/59448945?noredirect=1#comment105082157_59448945 link

{
  name: "program",
  children: (1)[
    {
      name: "file1",
      children: (1)[
        {
          name: "function1",
          calls: (2)[
            {
              line: 105,
              file: "file2",
              function: "function5"
            },
            {
              line: 106,
              file: "file2",
              function: "function6"
            }
          ],
          point: (2)[
            102,
            105
          ],
          point2: (3)[
            (2)[
              102,
              102
            ],
            (3)[
              105,
              106,
              107
            ],
            (2)[
              106,
              107
            ]
          ],
          group: 1
        }
      ],
      group: 1
    }
  ],
  group: 0
}

我现有的 d3 代码片段如下:

const data = TestFunction.test(); //from here i am calling the reformatted output
const root = d3.hierarchy(data);

const colorScale = d3.scaleOrdinal()
        .domain(data.children) // here its showing the error.
        .range(d3.schemeCategory10);

我将衷心感谢您的帮助。


您不能将嵌套数组传递给ordinal.domain():序数尺度需要有一个plain数组作为域...更重要的是,数组values,即基元,如字符串(如果您传递数字,它们无论如何都会被字符串化......)。这解释了你的错误:“类型参数不可分配给string".

话虽这么说,你可以使用root.descendants()让所有的孩子和map以获得他们想要的属性。在你的情况下,我假设你想要的字符串是孩子们的name财产。

在这个演示中,myNames是您将传递给序数标度的数组(如果您不需要根的名称,请将其删除):

const data = {
  "name": "program",
  "children": [{
    "name": "file1",
    "children": [{
      "name": "function1",
      "calls": [{
          "line": 105,
          "file": "file2",
          "function": "function5"
        },
        {
          "line": 106,
          "file": "file2",
          "function": "function6"
        }
      ],
      "lines1": [
        102,
        105
      ],
      "lines2": [
        [
          102,
          102
        ],
        [
          105,
          106,
          107
        ],
        [
          106,
          107
        ]
      ],
      "group": 1
    }],
    "group": 1
  }],
  "group": 0
};

const root = d3.hierarchy(data);

const myNames = root.descendants().map(d => d.data.name);

console.log(myNames)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型参数不可分配给字符串 的相关文章

随机推荐

  • 如何编写参数化sql查询来防止SQL注入?

    当我尝试搜索带有主题标签的术语时 我最初发现这是一个问题 结果发现它是 SQL 中的注释分隔符 搜索没有返回任何结果 因为它忽略了主题标签后面的 term 所以现在我很难找到转义用户输入的正确方法 在我看来 这既可以解决主题标签问题 也可以
  • 需要对这个反复出现的问题有一些了解,ANR keyDispatchingTimedOut

    我有一个应用程序在一个特定组件中不断出现 ANR 但我无法弄清楚是什么占用了 cpu 时间 最近我遇到了两种 ANR 一种是本机的 另一种是等待的 DALVIK THREADS main prio 5 tid 1 NATIVE group
  • 如何获取 Mesos Agents Framework 执行器内存

    在 Mesos Web UI 内部 我可以在表中查看 Spark 执行器的内存使用情况 Agents gt Framework gt Executors 有一个表列出了我的 Spark 驱动程序的所有执行程序 它们的内存使用情况在列中指示M
  • 如何用Java读取PGM图像?

    我觉得我在这里错过了一些简单的东西 像往常一样 我正在尝试使用 Java 读取 PGM 图像 Matlab 做得很好 在 Matlab 中输出图像像素 例如 一个小的 32x32 图像 给我这样的结果 1 0 11 49 94 118 11
  • 如何在 scala 中生成案例类参数的值

    我有一个包含 250 个字段的案例类 case class Data field1 String field2 Int 有没有办法使用 scala check 为其参数生成值 我看过的不相关问题 如何使用宏为 Scala 案例类中的每个字段
  • ViewModel 中的 Thread.CurrentThread.CurrentUICulture 与 Accept-Language

    全球化 提出这个问题的原因是为了更好地理解如何Thread CurrentThread CurrentUICulture与 ViewModel 和控制器中的属性和错误消息相关的工作 我已经设置了我的项目并覆盖OnActionExecutin
  • 使用 PuTTY 的 tail -f 挂起

    我正在使用 PuTTY 命令行连接到服务器并跟踪日志文件 在本地计算机上 我创建了一个文件 tail exec 其中包含以下文本 tail f var log test log 我通过命令行启动腻子 putty ssh t pw m tai
  • MongoDB:如何进行文本搜索并按日期排序

    上下文 我有一个 MongoDB 里面有大量电子邮件 我想搜索包含以下任意字段中给定电子邮件地址的所有电子邮件 收件人 发件人 抄送 和 密件抄送 结果需要按日期字段排序 我们目前正在尝试以下查询 db collection find te
  • 行高向上舍入

    chrome 似乎将计算的值向下舍入line height 例如 line height 1 33 with font size 11px将计算出line height 14px 而确切的值是14 66所以我希望行高等于 15px 您知道是
  • AngularJS ng-value 布尔验证

    具体来说 我有两个单选按钮 它们的 ng model 值必须是布尔值 由于这对于正常的 html value 属性是不可能的 我发现有用的 Angularjs ng value 问题是当我想做一些验证时 当选择单选按钮 ng value f
  • Solr“实时”索引

    我知道有几个与此类似的问题 但它们没有为当前的问题提供简单的答案 抱歉 如果您觉得这是重复的 但我认为清晰易懂的答案将使很多人受益 那么 对于这个问题 Solr 索引更新可以自动化吗 如果可以的话 最佳方法是什么 这是一个简单的用例来澄清问
  • 使用 Powershell 将 PDF 打印为 XPS

    我想使用 Powershell 将包含 PDF 文件的文件夹转换为 XPS 文件 由于系统限制 我无法下载任何第三方软件 例如 iTextSharp 来完成此工作 我已经能够让Powershell打开文档并打开XPS的打印窗口 但名称始终为
  • 使用 javax.sound.midi 包设置乐器通道

    我在 javax sound midi 包中设置乐器时遇到问题 Synthesizer synthesizer MidiSystem getSynthesizer MidiChannel channels synthesizer getCh
  • Python setup.py 在 Egg 中包含 .json 文件

    我想将 json 文件也打包到 python Egg 文件中 例如 boto包有endpoints json文件 但是当我运行 python setup py bdist egg 时 它不包含 Egg 中的 json 文件 如何将Json文
  • greenhills 编译器关闭文件或部分文件的优化

    我发现了几个用于禁用专用代码部分的 GCC 优化的代码片段 使用编译指示 GCC 优化 0 但我找不到 Greenhils 编译器的类似内容 没有这样的选择吗 从手册 pragma ghs Ostring Turns on optimiza
  • Powershell 命令修剪以“\”结尾的路径

    如果路径结尾为 我需要修剪路径 C Ravi 我需要更改为 C Ravi 我有一个情况 路径不会以 那么它必须跳过 我尝试过 EndsWith 但是当我有时它会失败 代替 可以在 PowerShell 中完成此操作而不诉诸条件吗 考虑使用T
  • 检索 Win64 异常表中的所有条目

    从一些更清晰的理解Win64异常堆栈行走不显示条目 https stackoverflow com questions 14187450 win64 exception stack walking not displaying entrie
  • 需要字母和数字 - regEx

    我试图弄清楚如何只需要字母和数字而不需要任何其他字符 所以从字面上看 a z and d or 0 9 取决于对数字执行此操作的更好方法 因此 如果我有一个需要验证的字符串 toValidate Q23AS9D0APQQ2 It may s
  • 为什么泛型类型不能有显式布局?

    如果尝试使用以下方法创建一个通用结构 StructLayout http msdn microsoft com en us library system runtime interopservices structlayoutattribu
  • 类型参数不可分配给字符串

    我有一个格式化的 json 数据 我想在 d3 中使用它来绘制层次结构 它正在处理旧数据 但在 json 数据中添加更多维度后 出现以下错误 类型参数 name string 孩子们 组 数量 名称 字符串 组 数量 不可分配给 只读字符串