在PHP中你可以做这样惊人/可怕的事情:
$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
Run Code Online (Sandbox Code Playgroud)
有没有办法用Javascript做这样的事情?
例如,如果我有一个var name = 'the name of the variable';可以获得名称变量的引用name?
我正在尝试使用动态变量名称(我不确定它们实际上是什么名称)但是非常像这样:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
Run Code Online (Sandbox Code Playgroud)
回报null告诉我它不起作用.我不知道我正在寻找的语法或技术是什么,这使得研究变得困难.$filelist早先定义.
我想在java中分配一组变量,如下所示:
int n1,n2,n3;
for(int i=1;i<4;i++)
{
n<i> = 5;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Java中实现这一目标?
有没有办法做类似于以下任何一种情况:
var1 = 10; var2 = 20;
var operator = "<";
console.log(var1 operator var2); // returns true
Run Code Online (Sandbox Code Playgroud)
- 要么 -
var1 = 10; var2 = 20;
var operator = "+";
total = var1 operator var2; // total === 30
Run Code Online (Sandbox Code Playgroud) javascript variables operators dynamic-variables operator-keyword
我刚刚开始学习Ruby,我编写了一个生成一些数字的程序,并将它们分配给变量@ one,@ two,@ three等.然后用户可以通过输入它的名称来指定要更改的变量(例如一).然后我需要做'@ [valueofinout] = asd'之类的事情.我怎么会这样做,并且有更好的方式,因为我想的方式似乎被劝阻了?我发现了
x = "myvar"
myvar = "hi"
eval(x) -> "hi"
Run Code Online (Sandbox Code Playgroud)
但我不完全理解为什么需要第二行.在我的情况下,我会使用类似的东西
@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto
Run Code Online (Sandbox Code Playgroud) 我已经构建了一个数据驱动的谷歌地图,其中包含不同的图标,这些图标会根据项目的类型分配给地图.因此,如果我有5种类型的地标,每个都有不同的图标(商店,图书馆,医院等) - 我想要做的是动态生成谷歌图标对象.我在想这样的事情:
types = array('hospital','church','library','store',etc);
var i=0;
while (i<=types.length) {
var landmark + i = new google.maps.Icon();
landmark.image = "icon" + i + ".png";
i++;
}
Run Code Online (Sandbox Code Playgroud)
然而,正如你可能已经猜到的那样,这不起作用.我也试过使用eval,像这样:
while (i<=types.length) {
doIcon(i);
i++;
}
function doIcon(i){
eval("var landmark" + i + " = new.google.maps.Icon();");
return eval("landmark" + i);
}
Run Code Online (Sandbox Code Playgroud)
但它也没有用 - 我很感激任何关于动态生成javascript变量的指针.它必须是纯粹的js,我可以用PHP来做,但这不是一个选项.
谢谢!
我正在尝试使用JavaScript来动态替换花括号内的内容.这是我的代码示例:
var myString = "This is {name}'s {adjective} {type} in JavaScript! Yes, a {type}!";
var replaceArray = ['name', 'adjective', 'type'];
var replaceWith = ['John', 'simple', 'string'];
for(var i = 0; i <= replaceArray.length - 1; i ++) {
myString.replace(/\{replaceArray[i]\}/gi, replaceWith[i]);
}
alert(myString);
Run Code Online (Sandbox Code Playgroud)
上面的代码应该输出"这是John在JavaScript中的简单字符串!是的,一个字符串!".
这是发生的事情:
但是,我没有运气,特别是因为一个值可以在多个位置被替换,并且我在正则表达式中处理动态值.
任何人都可以帮我解决这个问题,使用与上面类似的设置吗?
我需要在页面上创建许多对象,并希望按顺序命名它们.有没有办法在JavaScript中执行此操作?
for (i=0;i<num;i++){
var obj+i = new myObject("param1","param2");
obj+i.someProperty = value;
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以动态创建不同数量的对象(取决于值"num"),然后适当地设置它们的属性.
我可以用PHP做到这一点,有没有办法在JavaScript中做到这一点?
如何在NodeJS中创建动态变量名?一些例子说要存储在window变量中,但我假设这是客户端Javascript.如我错了请纠正我.
我正在尝试使用set标签在Struts2中创建一个动态变量
<s:set var="myNum" value="numConst" />
<s:set var="number" value="%{getText('@xxx.CommonConstant@'+#myNum)}" />
Run Code Online (Sandbox Code Playgroud)
numConst将返回从数据库中检索的动态值.例如,如果值为NINE则应为数字@xxx.CommonConstant@NINE
我已经在我的java类中设置了值,以便@xxx.CommonConstant@NINE返回9.
到目前为止,如果我使用的话,可以在文本标签中显示该值没有问题
<s:text name="%{getText(#number)}" />
Run Code Online (Sandbox Code Playgroud)
9当我尝试使用属性标记时,它会返回但显示不正确
<s:property value="%{getText(#number)}" />
<s:property value="%{#number}" />
<s:property value="#number" />
<s:property value="%{getText('%{getText(#number)}')}" />
Run Code Online (Sandbox Code Playgroud)
以上所有的例子都会给我价值@xxx.CommonConstant@NINE.我尝试从属性标记中获取值的原因是因为我想要复制正确的方法来显示值,以便我可以在if标签中使用它们,如下例所示:
<s:if test="#number == 9">
do something
</s:if>
Run Code Online (Sandbox Code Playgroud)
要么
<s:if test="%{getText(#number)} == 9">
do something
</s:if>
Run Code Online (Sandbox Code Playgroud)
CommonConstant:
package xxx;
public abstract class CommonConstant {
public static final int NINE = 9;
public static final int NINEONE = 91;
public static final double ADMIN_PGM …Run Code Online (Sandbox Code Playgroud)