【发布时间】:2020-07-18 09:07:57
【问题描述】:
我有以下代码:
<script type="application/javascript">
$(document).ready(function () {
$("#market_value").on("change paste keyup", function() {
var market_value = parseInt($(this).val());
var data = [
{"percent":"10","market_value":"10000"},
{"percent":"20","market_value":"10001"},
{"percent":"25","market_value":"20000"}
];
for (var x in data) {
if(market_value >= parseInt(data[x].market_value)) {
console.log(percentage(market_value, data[x].percent));
}
};
});
function percentage(num, per)
{
return (num/100)*per;
}
});
</script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="form-control" id="market_value" name="market_value" value="">
我只需要一个简单的代码来根据 JSON 数据列表计算市场价值的百分比。
例如:
如果我输入 8000 结果必须是 800(10% 基于“百分比”字段)。
如果我输入 11000 结果必须是 2200(20% 基于“百分比”字段,因为高于 10001)
如果我输入 50000 结果必须是 12500(25% 基于“百分比”字段,因为高于 20000)
如果我输入 3000 结果必须是 300(10% 基于“百分比”字段,因为不高于 10000)
我编写的代码以某种方式工作,但如果我输入一个低于 10000 的数字,则没有任何显示。
这些不是固定值,数据 (JSON) 是动态的。
【问题讨论】:
-
"但是如果我输入一个低于 10000 的数字,则什么都不会显示" - 因为
data中没有对象,market_value低于 10000 -
@Andreas 所说的,如果你在 json 中使用数字而不是字符串,你也不需要 parseInt 并且你应该用一个 break 反向迭代它们,否则它会给你多个真实的条件。
-
@Andreas 是的,你说得对,但我需要以某种方式使其在 0 - 10000 和 10001 - 20000 等范围内工作
-
@John 是的,它返回多个真实条件,我将尝试使用 break;
-
@GeorgeGeorge 为值 0 添加一个条目
标签: javascript jquery arrays json math