Reputation: 500
I would like to convert the following code from php to 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;
Upvotes: 0
Views: 271
Reputation:
Here is a javascript equivalent:
$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);
See how easy that was?
There is still a problem with your logic, namely that there is no reliable exit condition for the loop. For example, if the $price
value was greater than 500
, the loop would run indefinitely. There are several approaches you could take that could correct this, one of which is to check if the value is not larger than the greatest value in the array.
Upvotes: 3