<分区>
我遇到了一个问题,我必须处理给定值并检查该值是否大于我的值数组,如果是,则使用我的数组组合输出。
例如。
我的数组总是:
const ArrayPrimitive = [100,50,20,10];
例如输入中的给定值:
- 输入:30.00 结果:[20.00, 10.00]
- 输入:80.00 结果:[50.00, 20.00, 10.00]
- 条目:125.00 结果:抛出 NoteUnavailableException
- 输入:-130.00 结果:抛出 InvalidArgumentException
- 条目:NULL 结果:[空集]
我已经开始开发,但在检查值是否有效后,我陷入了如何处理其余部分的问题。
const ArrayPrimitive = [100,50,20,10];
var combination = [];
$(document).ready(function(){
$(".btn-submit").on("click",function(){
var amountOfMoney = document.getElementById('amountOfMoney').value;
for(let i=0; i=ArrayPrimitive.length;i++){
if(amountOfMoney=ArrayPrimitive[i]){
combination.push(amountOfMoney);
}
while(amountOfMoney > ArrayPrimitive[i]){
var k = amountOfMoney/ArrayPrimitive[i];
for(let j=0; j = k; j++){
combination.push(ArrayPrimitive[i]);
amountOfMoney = amountOfMoney - ArrayPrimitive[i];
}
var rest = n % ArrayPrimitive[i];
}
}
});
});
我的主要问题是:
- 你们能帮我用老方法解决这个问题吗?
- 我即将学习 ES6,可能
.map
或其他函数可以挽救我的生命,有人可以在这一点上启发我吗?
我希望我说清楚了。
https://jsfiddle.net/v748ha08/1/
更新:感谢@Malk 的回答,但您的解决方案仅在您不必组合子集的多个值时才提供正确的答案。
例如 报名费:200.00 结果:[100.00, 100.00]
在这种情况下,我的子集中需要 2 个值 100,当我测试它们时,它们的功能会抛出一个错误。