将PHP转换为javascript #1
convert php to javascript #1
我正在尝试将这个很棒的寻路php函数从http://granularreverb.com/a_star.php转换为javascript。
PHP函数
function path_float(&$heap, &$values, $i, $index) {
for (; $i; $i = $j) {
$j = ($i + $i%2)/2 - 1;
if ($values[$heap[$j]] < $values[$index])
break;
$heap[$i] = $heap[$j];
}
$heap[$i] = $index;
}
JAVASCRIPT函数
var $path_f;
var $path_h;
var $path_g;
var $path_open_heap;
function path_float($path_open_heap, $path_f, i, index) { // return heap & values
var j;
for (; i; i = j) {
j = (parseInt(i) + parseInt(i)%2)/2 - 1;
if($path_f[$path_open_heap[j]] < $path_f[index] ){
break;
}
$path_open_heap[i] = $path_open_heap[j];
}
$path_open_heap[i] = index;
}
我不确定javascript是否理解for()没有所有元素?如果我尝试执行javascript函数,我的浏览器会冻结。
注。我对预写的js路径不感兴趣,因为我需要相同的PHP和js函数。
Thanks in advance
您可以使用for
,而不需要javascript中的所有元素,类似于PHP。所以这不是问题所在。
我认为问题是返回给j的浮点数,它可能永远不会真正是0
,但可能是一些大的浮点数,如0.00000000001
或其他东西,因此永远不会计算为false。不幸的是,我无法测试它,因为您没有提供任何输入值。
尝试以下操作:
var $path_f;
var $path_h;
var $path_g;
var $path_open_heap;
function path_float($path_open_heap, $path_f, i, index) { // return heap & values
var j;
for (; i; i = parseInt(j)) {
j = (parseInt(i) + parseInt(i)%2)/2 - 1;
if($path_f[$path_open_heap[j]] < $path_f[index] ){
break;
}
$path_open_heap[i] = $path_open_heap[j];
}
$path_open_heap[i] = index;
}
相关文章:
- 将这些正则表达式从javascript转换为Java
- 使用JAVASCRIPT转换货币.可以't通过我的函数设置转换后的输入文本字段的值
- 使用ScriptObjectMirror将数组结果从JavaScript转换为有用的东西
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 使用document.cookie将客户端javascript转换为节点模块
- 将纯javascript转换为jquery
- 按钮标签,javascript 转换为链接标签
- Javascript转换数组
- 如何将此JavaScript转换为插件
- 将可迭代的 Javascript 转换为数组
- DOM元素上的Javascript转换
- 用javascript转换日期
- 将代码从JavaScript转换为PHP
- 将var javascript转换为java变量
- 如何使用javascript转换特殊字符及其实体名称(如&with&)
- 如何将这个javascript转换为jquery
- Clojure到JavaScript转换器(Leiningen)
- .Net Ticks 使用 JavaScript 转换为 ISO 8601 日期格式
- JavaScript 转换用户输入
- 将 Javascript 转换为 coffeescript