[英]Javascript Object: find a key/value when in range
我有一個像這樣的Javascript對象:
pItems = {
single : {
...
plz: {
"1000": 12,
"2000-2500" : 40
"3000": 30
}
...
}
}
我從輸入字段中獲取值,例如“2300”,現在我需要來自對象的此“2300”的值。 因為2300在plz-key“2000-2500”的范圍內,所以應該返回的值是“40”。
如果我在關鍵的“范圍”中查找某些內容,我不知道如何找到正確的值。
謝謝你的任何建議,幫助。
如果可能,您可以迭代密鑰,拆分密鑰並執行檢查。 如果在范圍內,則返回該項並離開循環。
function getItem(value) { var item; Object.keys(object.plz).some(function (k) { var part = k.split('-'); if (+value >= part[0] && +value <= (part[1] || part[0])) { item = object.plz[k]; return true; } }); return item; } var object = { plz: { "1000": 12, "2000-2500": 40, "3000": 30 } }; console.log(getItem('1000')); console.log(getItem('2300'));
作為功能包裹:
function getValue(search) {
for( var range in pItems.plz ) {
var split = range.split("-");
if( search >= parseInt(split[0]) && search <= parseInt(split[1] || split[0]) )
return pItems.plz[range];
}
}
呼叫:
console.log(getValue(1000)); // 12
console.log(getValue(2300)); // 40
console.log(getValue(3000)); // 30
console.log(getValue(5000)); // undefined
var pItems = { single : { plz: { "1000": 12, "2000-2500" : 40, "3000": 30 } } }; var val =2300 ; $.each(pItems.single.plz, function(k,v) { var min = parseInt(k.split('-')[0]); var max = parseInt(k.split('-')[1]); if(isNaN(max) ){ if(min == val){ console.log(v); return; } }else if(val>=min || val <= max){ console.log(v); return; } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.