我将C++代码转换为javascript,即here。代码的其余部分看起来不错,但以下功能有问题。首先,while循环内部的第二行抛出错误Uncaught ReferenceError: Invalid left-hand side in assignment
。当我将其更改为m = (A[m] >= key ? r : l);
时,此循环变得无限。 如何在JavaScript中解决它?使用javascript进行二进制搜索
function CeilIndex(A, l, r, key) {
var m;
while(r - l > 1) {
m = l + (r - l)/2;
(A[m] >= key ? r : l) = m; // ternary expression returns an l-value
}
return r;
}