2016-12-26 3 views
0

У меня есть массив под названием pos, возвращаемый функцией outerarc.centroid, который может иметь значения NaN. Я хочу, чтобы эти значения должны быть назначены с 0.Как проверить значения NaN в d3?

Я использую следующую логику:

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); 

Но это не работает. Как еще я могу проверить это?

ответ

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, не массивом объектов (в этой ситуации вы должны выбрать свойство, используя d.foo).

Смежные вопросы