Javascript 可以从具有给定订单大小的数组中获取多少项
我有一个包含数字的数组,其中数组顺序是固定的 我想看看我可以用JS中的ordersize从这个数组中提取多少项 我的代码给出了错误的结果,例如500个单位可以购买前2个项目,第3个项目的0,66个,所以总共可以获得2,66个,但代码给出了4个。对于250台机组,我可以取第一项全部,第二项总计的0.75,取1.75,但代码给出1.5 对于300给出2,这是正确的,但通常给出错误的结果 我已经更改了for和if条件的内部或外部的结果行,它会影响结果,但结果仍然是错误的(对于给定的阵列2100,unit ordersize将使用6个结果的所有项目)Javascript 可以从具有给定订单大小的数组中获取多少项,javascript,arrays,for-loop,if-statement,Javascript,Arrays,For Loop,If Statement,我有一个包含数字的数组,其中数组顺序是固定的 我想看看我可以用JS中的ordersize从这个数组中提取多少项 我的代码给出了错误的结果,例如500个单位可以购买前2个项目,第3个项目的0,66个,所以总共可以获得2,66个,但代码给出了4个。对于250台机组,我可以取第一项全部,第二项总计的0.75,取1.75,但代码给出1.5 对于300给出2,这是正确的,但通常给出错误的结果 我已经更改了for和if条件的内部或外部的结果行,它会影响结果,但结果仍然是错误的(对于给定的阵列2100,uni
函数计算顺序(){
var coinArray=[100200300400500600];
var orderSize=500;
var总和=0;
var i=0;
对于(i=0;i document.write(calculateOrder())代码>您的代码有三个问题:
for
循环执行if
语句,然后执行return
语句,以便在第一次迭代期间始终返回
for
循环需要迭代,直到i
- 编写的循环迭代次数过多,导致
return
语句中的值不正确
以下是纠正这些问题的版本:
函数计算顺序(){
var coinArray=[100200300400500600];
var orderSize=500;
var总和=0;
var i=0;
对于(i=0;iorderSize){//if超过orderSize
返回i+((orderSize-sum)/coinArray[i]);//2+(0.66)
}
sum+=coinArray[i];//否则添加到sum
}
}
document.write(calculateOrder())代码>您的代码有三个问题:
for
循环执行if
语句,然后执行return
语句,以便在第一次迭代期间始终返回
for
循环需要迭代,直到i
- 编写的循环迭代次数过多,导致
return
语句中的值不正确
以下是纠正这些问题的版本:
函数计算顺序(){
var coinArray=[100200300400500600];
var orderSize=500;
var总和=0;
var i=0;
对于(i=0;iorderSize){//if超过orderSize
返回i+((orderSize-sum)/coinArray[i]);//2+(0.66)
}
sum+=coinArray[i];//否则添加到sum
}
}
document.write(calculateOrder())代码>使用下面的代码。我给你做了几件事
创建一个变量来存储您当前拥有的钱的金额。所以每次你“买”一件东西,你就减去你买的东西
我改变了一些逻辑,使它起作用。基本上,退货声明将您当前的金额除以所需的金额,以获得您可以购买的部分商品,然后将您已经购买的商品的金额相加李>
另外,你还需要有其他的。else在if语句结果为false时执行,因此当您没有足够的钱购买物品时,else将执行李>
return
中断了函数的,因此这是您以前的代码无法正常工作的原因之一。for循环将执行一次,然后中断李>
for
循环需要在coinArray.length
处结束。您可能认为需要使用-1
,因为数组索引从0开始,除了for循环小于且不小于或等于之外,它将在最后一个索引处结束李>
函数计算顺序(orderSize){
var coinArray=[100200300400500600];
var amountOfMoney=订单大小;
对于(var i=0;icoinArray[i]){
amountOfMoney-=coinArray[i];
}
否则{
返回i+amountOfMoney/coinArray[i];
}
}
}
文件编写(计算顺序(500))代码>使用下面的代码。我给你做了几件事
创建一个变量来存储您当前拥有的钱的金额。所以每次你“买”一件东西,你就减去你买的东西
我改变了一些逻辑,使它起作用。基本上,退货声明将您当前的金额除以所需的金额,以获得您可以购买的部分商品,然后将您已经购买的商品的金额相加李>
另外,你还需要有其他的。else在if语句结果为false时执行,因此当您没有足够的钱购买物品时,else将执行李>
return
中断了函数的,因此这是您以前的代码无法正常工作的原因之一。for循环将执行一次,然后中断李>
for
循环需要在coinArray.length
处结束。您可能认为需要使用-1
,因为数组索引从0开始,除了for循环小于且不小于或等于之外,它将在最后一个索引处结束李>
函数计算顺序(orderSize){
var coinArray=[100200300400500600];
var amountOfMoney=订单大小;
对于(var i=0;icoinArray[i]){
amountOfMoney-=coinArray[i];
}
否则{