2016-10-11 3 views
1

Я пытаюсь сравнить некоторые значения массива, и мне нужно получить незначительное значение свойства объекта, но у меня есть следующая ошибка.сравнить два значения в javascript работает неправильно

это мой код:

//JavaScrit 
 

 
var minValue = data.freight[0].localPrice; 
 

 
    console.log(minValue); 
 

 
    for (var i = 0; i < data.freight.length; i++) { 
 

 
     console.log('----------'); 
 
     console.log(minValue); 
 
     console.log('>'); 
 
     console.log(data.freight[i].localPrice); 
 
     console.log('----------'); 
 

 
     if (minValue > data.freight[i].localPrice) { 
 

 
      minValue = data.freight[i].localPrice; 
 

 
      console.log('verdadero'); 
 

 
     }else{ 
 

 
      console.log('falso'); 
 

 
     } 
 
     }

и это выход:

Why 4.27 > 160.02 it´s true?

Почему 4,27> 160,02 это правда? Помогите.

+3

Потому что те строки не номера. – zerkms

+0

Вы сравниваете строки, сравниваете по положению и в первой позиции 4> 1, вот и все. – arcegk

+0

преобразуйте его в float и снова попробуйте – vijay

ответ

0

Предполагается, что localPrice является строкой. Поэтому вы должны использовать parseFloat(), чтобы получить значение float и получить ожидаемые результаты при сравнении.

var minValue = parseFloat(data.freight[0].localPrice); 

И в вашем if заявлении:

if (minValue > parseFloat(data.freight[i].localPrice)) { 

    minValue = parseFloat(data.freight[i].localPrice); 

    console.log('verdadero'); 

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