有没有办法在Javascript中从数组中返回变量的名称?

时间:2015-04-03 05:36:55

标签: javascript arrays

我有一个包含可以改变位置的变量的数组,我想创建一个for循环来检查特定变量的长度是否等于零。我宁愿不必在数组中定位变量的位置,因为它可能会改变。

那么,有没有办法通过变量的名称来定位数组中的变量?

4 个答案:

答案 0 :(得分:2)

数组通常将数据存储在数字索引下,如0 1,2,n,所以没有。使用密钥将变量存储在Object中,并使用以下内容访问您的变量:

var data = {varName: var1, varName2: var2};
data['varName'] = //do your thing

答案 1 :(得分:1)

字典就是你想要的。

var myDict = {x:"firstVariable", y:"second", z: ""}
 //check length
 for (key in myDict.keys()) {
     if (len(myDict[key]) == 0) {
       //Do something
     }
 }

以变量名作为键存储您的值,然后只测试每个键的值的长度。

答案 2 :(得分:0)

您可以动态访问。

var personDetails = {name:"stanze", location: "earth" };
var p1="name";
var p2="location";
console.log(personDetails[p1]); //will print stanze
console.log(personDetails[p2]); //will print earth

答案 3 :(得分:0)

Object.getOwnPropertyNames()返回一个数组,其元素是与obj上直接找到的可枚举和不可枚举属性相对应的字符串。

// Array-like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
print(Object.getOwnPropertyNames(obj).sort()); // prints '0,1,2'

var arr = ['a', 'b', 'c'];
print(Object.getOwnPropertyNames(arr).sort()); // prints '0,1,2,length'

// Printing property names and values using Array.forEach
Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) {
  print(val + ' -> ' + obj[val]);
});

Userful Article