javascript - 如何检查 d3 中的 NaN 值?

标签 javascript d3.js

我有一个名为 pos 的数组,由 outerarc.centroid 函数返回,它也可能具有 NaN 值。我希望这些值被赋值为 0。

我使用以下逻辑:

var pos = outerArc.centroid(d2);
pos.forEach(function(d, i) { 
  console.log(d + " " + i);
  if(d==NaN){
    d = 0;
  }
  console.log(d + " " + i);
});
var x = pos[0],
    y = pos[1],
    h = Math.sqrt(x*x + y*y); 

但是它不起作用。我还能如何检查?

最佳答案

在 javascript 中,NaN 是唯一不等于任何东西的东西,甚至不等于它本身!

var a = NaN;
console.log("Is NaN equal to NaN? " + (a === a));
console.log("Is NaN different from NaN? " + (a !== a));

话虽这么说,你可以这样做:

if(d !== d){
    d = 0;
}

假设您有一个基元数组,即质心的情况,不是对象数组(在这种情况下,您必须使用d.foo)。

关于javascript - 如何检查 d3 中的 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41327533/

相关文章:

javascript - 从 D3 中的多个 csv 文件导入数据

javascript - 如何使用内部 div 拖动其外部父 div?

Javascript:揭示模块模式。访问私有(private)成员(member)

javascript - 如何限制没有轴的力导向图形布局上的平移? D3/JS

javascript - D3js 在 Enter() 上强制重复节点

javascript - 外层selectAll : what is selected?

javascript - Google Apps 脚本/Javascript 搜索并替换为正则表达式不起作用

Javascript - 使用表单选择 onChange 创建新的 div

javascript - 如何使用 PHP 在邮件中添加超链接

javascript - 折线图的 x 坐标缩放