将php循环转换为JavaScript

将php循环转换为JavaScript,php,jquery,arrays,loops,while-loop,Php,Jquery,Arrays,Loops,While Loop,我想将以下代码从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,3

我想将以下代码从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;

下面是一个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
,循环将无限期运行。有几种方法可以解决这个问题,其中一种是检查值是否不大于数组中的最大值。

这里有一个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
,循环将无限期运行。有几种方法可以解决这个问题,其中之一是检查值是否不大于数组中的最大值。

如果您有
$price=501这将是一个无休止的循环:)如果你有
$price=501
这将是一个无休止的循环:)@phpisuber01:
$
可以是变量名的一部分,如果您愿意的话。@phpisuber01我只是想强调,所需的更改是最小的。@azizpunjani这将是对其逻辑的更正。我只是用另一种语言复制了他的逻辑。@azizpunjani我编辑了我的答案来提到这个问题。@Asad:我不介意:P,这只是一个旁注,可能会引起OP的兴趣。不过,我唯一不能忍受的是(ab)数组构造函数的使用。我知道您希望代码尽可能类似于PHP代码,但PHP5.4现在也支持
[]
数组表示法。默认情况下,它还支持lambda函数和
json_decode
解码到对象。看起来他们在挑选JS作为好的部分:)@phpisuber01:
$
可以是变量名的一部分,如果你愿意的话。@phpisuber01我只是想指出,所需的更改是最小的。@azizpunjani这将是对他的逻辑的修正。我只是用另一种语言复制了他的逻辑。@azizpunjani我编辑了我的答案来提到这个问题。@Asad:我不介意:P,这只是一个旁注,可能会引起OP的兴趣。不过,我唯一不能忍受的是(ab)数组构造函数的使用。我知道您希望代码尽可能类似于PHP代码,但PHP5.4现在也支持
[]
数组表示法。默认情况下,它还支持lambda函数和
json_decode
解码到对象。看起来他们好像在为好的部分挑选JS:)