0

我想知道是否可以在提示框中输入变量的值,让它在原始变量的警报中返回给我。

说:var myGoal = "answer";如果我answer在提示符中输入“”,那么获取我的“ answer”值,搜索并让它myGoal在警报中返回的好方法是什么?

4

4 回答 4

2

像这样的东西可以解决问题:

function test(val)
{
    for (var i in window)
    {
        if (window.hasOwnProperty(i) && window[i] === val)
        {
            alert(i);
        }
    }
}

这基本上会遍历全局对象(窗口)中的所有内容,并在找到与您正在寻找的值相等的值时触发警报。

于 2009-10-08T03:42:28.163 回答
1

如果你愿意稍微改变你的方法:

var Data = new Object();
Data["myGoal"] = "answer";
// ...

// Get response from prompt...
var response = /* ... */;

for (var key in Data)
{
    if (Data[key] == response)
    {
        alert(key);
    }
}
于 2009-10-08T04:26:50.417 回答
0

实现您希望的唯一方法是使用 eval 函数。eval 也被称为“邪恶”函数。它会给你的代码带来巨大的安全漏洞,而且效率极低。不要使用评估。

问题是分配给变量的值将始终是字符串、数字、布尔值、未定义、数组、函数或对象字面量。您不能将变量名称作为值分配给另一个变量,因为当一个变量分配给另一个变量时,变量的内容就是实际分配的内容。

您将不得不重新设计您尝试编写的测试以显式地测试提供的值,而不是将字符串转换为变量名。

于 2009-10-08T03:37:04.430 回答
0
function test() 
{
    var answer = prompt("Hello? What is your name?",'');
    alert(answer);
}
于 2009-10-08T03:13:59.097 回答