feesar
feesar

Reputation: 500

Convert php loop to JavaScript

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

Answers (1)

user1726343
user1726343

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

Related Questions