मुझे लगता है कि मैं जो चाहता हूं वह बहुत आसान है लेकिन मुझे वास्तव में सही समाधान नहीं मिल रहा है।एक सरणी का सबसे नज़दीकी छोटा मान
मैं जावास्क्रिप्ट में सरणी के इस प्रकार है:
[0, 38, 136, 202, 261, 399]
और मैं एक बटन पर क्लिक 0 से 600 से उत्पन्न मूल्य मिलता है। मुझे इस सरणी में निकटतम निचला मूल्य ढूंढना है।
उदाहरण के लिए, यदि उत्पन्न मूल्य 198 है, तो मैं परिणाम के रूप में 136 प्राप्त करना चाहता हूं। तो उत्पन्न मूल्य 300 है, मैं 261 चाहते हैं ... अगर यह 589 है, मैं चाहता हूँ 399 आदि आदि
अब तक, मैं इस कोड के साथ की कोशिश की है:
var theArray = [ 1, 3, 8, 10, 13 ];
var goal = 7;
var closest = null;
$.each(theArray, function(){
if (closest == null || Math.abs(this - goal) < Math.abs(closest - goal)) {
closest = this;
}
});
alert(closest);
लेकिन यह केवल निकटतम रिटर्न मूल्य ... अब मुझे दिए गए नंबर के लिए केवल निकटतम छोटे मूल्य प्राप्त करने की आवश्यकता है ... मैं अपनी आवश्यकताओं के अनुरूप अपने एल्गोरिदम को कैसे सुधार सकता हूं?
धन्यवाद!
आप सरणी हमेशा अनुसार क्रमबद्ध है? –
उल्लेख करने के लिए भूल गए कि हाँ, इसे हमेशा उदाहरण के क्रम में क्रमबद्ध किया जाएगा ;-) – fraxool
'&& लक्ष्य - यह> 0' – fen1x