Java脚本 - 给定一个字符串输入,查找是否存在具有相同名称的变量,如果存在变量,则更改值

时间:2015-05-18 12:33:21

标签: javascript

我想查找变量并更改其值,输入是一个字符串。

实施例。如果输入字符串是" variableSalary",我想查找是否有任何使用相同名称定义的变量,如果存在,则使用其他字符串输入更改其值

2 个答案:

答案 0 :(得分:1)

在javascript中,所有全局变量都是全局对象的属性 您可以通过两种方式访问​​属性:object.property或object [" property"] 在大多数情况下,你应该选择第一个。但方括号表示法有点表示法没有的一种行为:它允许您搜索以前不知道名称或将动态生成的属性。这就是你想要的。

你可以试试这个:

function isVar(string) {
  if (typeof this[string] !== 'undefined') {
    return true;
  } 
  else {
    return false;
  }
}

function changeVar(string, value, scope) {
  var scope = scope || this;
  var test = isVar.call(scope, string);
  if (test === true) {
    scope[string] = value;
    return value;
  } 
  else {
    return undefined;
  }
}

如果要检查全局变量,则无需定义范围,但如果要检查另一个对象,则必须对其进行定义。 请注意,只有当变量具有值时才会检查变量是否已声明。因此,如果您声明了一个变量但没有定义它(var a;),则isVar将返回false。

答案 1 :(得分:0)

您可以在此示例中执行此操作:How to find JavaScript variable by its name

var a = "test";
alert(window["a"]);
window["a"] = "changed it";
alert(window["a"]);