jquery - 获取 D3 中数组的实际最大值

标签 jquery arrays max d3.js

我正在使用 jQuery 引入一串逗号分隔的数字,以便在 D3 中进行绘图。我正在尝试获取该数组的最大值,但进展不顺利。

var x_data = $('.CostImport').text().split(',');
var y_data = $('.PriceImport').text().split(',');
var r_data = $('.SalesImport').text().split(',');
var c_data = $('.ZoneImport').text().split(',');


 for (i = 0; i < x_data.length; i++) {
   data.push({ "x": x_data[i], "y": y_data[i], "c": c_data[i], "r": r_data[i] });
   }

alert(d3.max(r_data));
alert(d3.max(data, function (d) { return d.r }));

这两个警报都向我传递了相同的号码,这是不正确的。实际的最大值是 928870,但我返回的是 9975。绘制一切都很好(散点图,r 确定大小和 c 颜色),所以我有点困惑为什么我不能拉出最大数字。

有什么想法吗?

最佳答案

听起来这些值被视为字符串。您需要使用 parseIntparseFloat (取决于值的精度)将它们转换为整数,以便 max 函数发挥作用你正在期待。

这是一个将字符串数组转换为 int 的快速函数。这将是更好的原型(prototype),但对于一个快速而肮脏的例子,这将起作用:

function toIntArray(arr) {
    for (var i = 0; i < arr.length; i++) { 
        arr[i] = +arr[i]; 
    } 
    return arr;
}

保持代码不变,但修改这些行:

r_data = toIntArray(r_data);
data = toIntArray(data);

alert(d3.max(r_data));
alert(d3.max(data, function (d) { return d.r }));

关于jquery - 获取 D3 中数组的实际最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709950/

相关文章:

javascript - 如何使用 ajax 上传文本字段和文件?

javascript - 第二次点击后的 jQuery 解除绑定(bind)事件

java - 如何制作一个Java猜谜游戏程序

sql - Postgres max 在几列上

loops - 收集多个最大值

jquery - Bootstrap 模型变大后如何居中

javascript - 8不小于或等于30?

c++ - 如何在结构内的数组中搜索?

arrays - 类型 'Any' 在 Swift 中没有下标成员

c++ - 为什么 std::max 不适用于字符串文字?