![](/img/trans.png)
[英]jQuery - how to find a specific JavaScript object inside an array within an object?
[英]How to find specific array item inside for loop using javascript
我需要找到從特定數組項amount
根據**"1000,2000,3000|100,200,300"**
例如..,(范圍|量) 輸入量串
喜歡..,
--Range-- = --Output-- 0 to 1000 = 0<br /> 1001 to 2000 = 100<br /> 2001 to 3000 = 200<br /> 3000 onwards = 300
我為此做的
var input = 3001; // (test inputs 1000,1500,2200)
var output=0;
var str = "1000,2000,3000|100,200,300";
var range = str.split('|')[0].split(',');
var amount = str.split('|')[1].split(',');
for(var i=0;i<range.length;i++){
var checkRange= parseInt(range[i]);
if(input<=checkRange){
output=i!=0?(amount[i-1]):0;
break;
}
}
console.log(output)
僅當input
量介於0到最后一個數組項(range 0-3000, input is >=3000 )
,此代碼才能正常工作,但是如果input amount(<3000)
大於最后一個數組項(范圍),則返回0
請幫助解決這些問題!
嘗試這個 。
if(checkRange <=input)
checkrange
總是checkrange
input
它總是零。 array
。 pop()
獲得最后一個值 var input = 3001; // (test inputs 1000,1500,2200) var output=[0]; var str = "1000,2000,3000|100,200,300"; var range = str.split('|')[0].split(','); var amount = str.split('|')[1].split(','); for(var i=0;i<range.length;i++){ var checkRange= parseInt(range[i]); if(checkRange <=input){ output.push(amount[i]) } } console.log(output.pop())
您可以在檢查值是否小於正確范圍值時使用迭代方法。
function getAmount(ranges, value) { var data = string.split('|').map(function (a) { return a.split(',').map(Number); }), index = 0; data[0].every(function (a) { return a < value && ++index; }); return data[1][index - 1] || 0; } var string = "1000,2000,3000|100,200,300"; console.log(getAmount(string, 1)); // 0 console.log(getAmount(string, 999)); // 0 console.log(getAmount(string, 1000)); // 0 console.log(getAmount(string, 1001)); // 100 console.log(getAmount(string, 2000)); // 100 console.log(getAmount(string, 2001)); // 200 console.log(getAmount(string, 3000)); // 200 console.log(getAmount(string, 3001)); // 300
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.