2013-09-12 2 views
-1

У меня есть яваскрипт массив объектов:Javascript диапазон объекта

[ 
    Object { from="0", to="350", price="25"}, 
    Object { from="351", to="700", price="50"} 
    ... 
    Object { from="701", to="*", price="75"} // Where * - unlimited value 
] 

И входное значение: VAR с = 100

Как я могу найти значение цен?

Пример: Для всего = 100 моя ценность цена будет 25.

+1

Как насчет цикла for, содержащего тест if с> = и <=? Что вы пробовали? – nnnnnn

ответ

1
var ranges = [ 
    { from:0, to:350, price:25}, 
    { from:351, to:700, price:50}, 
    { from:701, to:"*", price:75} 
];  

function isInRange(range, value) { 
    return range.from < value && (range.to === '*' || range.to >= value) 
} 

var value = 100; 
var priceFound = false 
for (var i = 0; i < ranges.length && !priceFound; i++) { 
    var range = ranges[i]; 
    if (isInRange(range, value)) { 
     alert("price: " + range.price); 
     priceFound = true 
    } 
} 

Я очистил свои определения объектов, потому что текущая версия не является допустимым JavaScript.

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