gpt4 book ai didi

javascript - 从 D3 中的 JSON 获取最大值

转载 作者:行者123 更新时间:2023-11-29 16:19:37 25 4
gpt4 key购买 nike

我将 D3 与 JSON 数据一起使用,其功能与此类似:

 d3.json("http://api.json", function(jsondata) {
var data = jsondata.map(function(d) { return d.number; });

这会导致数据等于 ["2", "5", "8", "12"]

然后如果我使用:var x = d3.scale.linear()
.domain([0, d3.max(data)])

返回的最大值是 8 而不是 12。我意识到这是因为 8 大于 1 的 12,但我不确定如何解决这个问题。谢谢!

最佳答案

根据 API 引用,d3.max使用自然顺序 返回最大值。由于您正在计算字符串数组的最大值,lexicographic (alphabetical) order用来。比较:

console.log("8" > "12"); // true
console.log(8 > 12); // false

如果你想计算数组的最大值,你可能应该先将这些字符串转换为数字。一种方便的方法是使用一元 + 运算符:

var data = jsondata.map(function(d) { return +d.number; });

如果您愿意,还可以使用 parseFloat、parseInt、Number 或各种其他方法将字符串强制转换为数字。从技术上讲,您可以将此作为 d3.max 调用的一部分 (d3.max(data, Number)),但显式执行强制转换通常更快更安全。

当然,由于您已经在使用 JSON 并且 JSON 是一种类型化的序列化格式,因此将数字存储在 JSON 中而不是字符串中可能更有意义;那么您将不需要任何类型强制转换。

关于javascript - 从 D3 中的 JSON 获取最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804337/

25 4 0
文章推荐: android - 带有对象名称的 For 循环
文章推荐: javascript - 将参数传递给参数
文章推荐: android - 如何检测浏览器是否有点击高亮?
文章推荐: javascript - 使用 JS 下载
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com