如何检查d3中的NaN值?

时间:2016-12-26 06:56:51

标签: 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); 

但它没有用。我还能怎么检查呢?

1 个答案:

答案 0 :(得分:3)

在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;
}

假设你有一个基元数组,就是centroid的情况,不是一个对象数组(在这种情况下,你必须使用{{1}选择属性}})。