0

我想将以下代码从 php 转换为 JavaScript:

$price = '270';

$allowed_sms_prices = array(
 5,7,10,15,20,25,30,35,39,40,
 45,49,50,55,59,60,69,75,79,85,
 89,95,100,125,150,175,200,225,250,275,
 300,310,315,320,325,330,335,340,345,350,
 355,360,365,370,375,380,385,390,395,400,
 405,410,415,420,425,430,435,440,445,450,
 455,460,465,470,475,480,485,490,495,500
);

while( ! in_array( $price, $allowed_sms_prices ) )
{
     $price = $price + 1;
}
echo $price;
4

1 回答 1

3

这是一个等效的javascript:

$price = 270;

$allowed_sms_prices = Array(
 5,7,10,15,20,25,30,35,39,40,
 45,49,50,55,59,60,69,75,79,85,
 89,95,100,125,150,175,200,225,250,275,
 300,310,315,320,325,330,335,340,345,350,
 355,360,365,370,375,380,385,390,395,400,
 405,410,415,420,425,430,435,440,445,450,
 455,460,465,470,475,480,485,490,495,500
);

while( $allowed_sms_prices.indexOf($price) == -1 )
{
     $price = $price + 1;
}
alert($price);

看看这有多容易?

您的逻辑仍然存在问题,即循环没有可靠的退出条件。例如,如果该$price值大于500,则循环将无限期运行。您可以采取多种方法来纠正此问题,其中之一是检查该值是否不大于数组中的最大值。

于 2012-11-16T20:34:59.920 回答