2013-03-08 2 views
0

У меня есть следующий яваскрипт блок кода, и не очень понятно, об этом:Пожалуйста, объясните эту строку кода js.

var level = this.getLevelForResolution(this.map.getResolution()); 
var coef = 360/Math.pow(2, level); 

var x_num = this.topTileFromX < this.topTileToX ? Math.round((bounds.left - this.topTileFromX)/coef) : Math.round((this.topTileFromX - bounds.right)/coef); 
var y_num = this.topTileFromY < this.topTileToY ? Math.round((bounds.bottom - this.topTileFromY)/coef) : Math.round((this.topTileFromY - bounds.top)/coef); 

Что делает < в this.topTileFromX < означает?

+1

«<» - это знак меньше, чем знак в состоянии тернарного оператора. Помимо этого, вопрос не очень ясен. –

+1

@TimMedora, я думаю, он испытывает трудности с выражением на английском языке. Я отредактировал вопрос, чтобы сделать его более понятным. – saji89

+0

спасибо. мой язык не английский – user1279988

ответ

1

Это трёхмерный оператор JavaScript. См Details Here

var x_num = this.topTileFromX < this.topTileToX ? Math.round((bounds.left - this.topTileFromX)/coef) : Math.round((this.topTileFromX - bounds.right)/coef); 

эквивалентно следующему выражению

var x_num; 

if (this.topTileFromX < this.topTileToX) 
{ 
    x_num= Math.round((bounds.left - this.topTileFromX)/coef); 
} 
else 
{ 
    x_num= Math.round((this.topTileFromX - bounds.right)/coef); 
} 
+0

Я это понимаю! Благодарю. – user1279988

0

< означает "меньше, чем", как и в математике.

Таким образом

  • 2 < 3 возвращает true
  • 2 < 2 является false
  • 3 < 2 также false
0
var x_num = this.topTileFromX < this.topTileToX ? Math.round((bounds.left - this.topTileFromX)/coef) : Math.round((this.topTileFromX - bounds.right)/coef); 

Это короче, если заявление. Это означает:

var x_num; 

if(this.topTileFromX < this.topTileToX) 
{ 
    x_num = Math.round((bounds.left - this.topTileFromX)/coef); 
} 
else 
{ 
    x_num = Math.round((this.topTileFromX - bounds.right)/coef); 
} 
Смежные вопросы