我想知道是否有更有效的方法来编写案例循环。
$search = "ORDER BY CASE WHEN created_by = :created_by THEN -1
WHEN cat_id = 24 THEN -1
WHEN cat_id = 26 THEN -1
ELSE created_at END LIMIT :limit, :perpage";
Run Code Online (Sandbox Code Playgroud)
我怀疑是否
WHEN cat_id = 24 THEN -1
WHEN cat_id = 26 THEN -1
Run Code Online (Sandbox Code Playgroud)
可能
WHEN cat_id = IN(24,26) THEN -1
Run Code Online (Sandbox Code Playgroud)
如果不是,我该怎么办?我必须做某种for循环吗?
我正在尝试从半径和 x,y 坐标制作一个圆。除了数组不是我使用的正确格式之外,我已经完成了所有操作。我得到:
[
"X_PROPS:40,Y_PROPS:0",
"X_PROPS:39.99390780625565,Y_PROPS:0.6980962574913405",
"X_PROPS:39.97563308076383,Y_PROPS:1.3959798681000388",
"X_PROPS:39.94518139018295,Y_PROPS:2.093438249717753"
]
Run Code Online (Sandbox Code Playgroud)
但是我需要:
[
{X_PROPS:40,Y_PROPS:0},
{X_PROPS:39.99390780625565,Y_PROPS:0.6980962574913405},
{X_PROPS:39.97563308076383,Y_PROPS:1.3959798681000388},
{X_PROPS:39.94518139018295,Y_PROPS:2.093438249717753}
]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
function spec(radius, steps, centerX, centerY){
var xValues = [centerX];
var yValues = [centerY];
var result = [];
for (var i = 0; i < steps; i++) {
xValues[i] = (centerX + radius * Math.cos(2 * Math.PI * i / steps));
yValues[i] = (centerY + radius * Math.sin(2 * Math.PI * i / steps));
result.push('X_PROPS:'+ xValues[i]+','+'Y_PROPS:'+ yValues[i]);
}
return result;
}
console.log(spec(40,360,0,0))
Run Code Online (Sandbox Code Playgroud)