簡體   English   中英

Javascript對象:在范圍內查找鍵/值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM