我有一个数组,其中包含可能会改变位置的变量,我想创建一个for循环来检查特定变量的长度是否等于零。我宁愿不必定位变量在数组中的位置,因为它可能会改变。有没有办法从Javascript中的数组返回变量的名称?
那么,有没有办法通过变量的名称来定位数组中的变量?
我有一个数组,其中包含可能会改变位置的变量,我想创建一个for循环来检查特定变量的长度是否等于零。我宁愿不必定位变量在数组中的位置,因为它可能会改变。有没有办法从Javascript中的数组返回变量的名称?
那么,有没有办法通过变量的名称来定位数组中的变量?
字典是您想要的。
var myDict = {x:"firstVariable", y:"second", z: ""}
//check length
for (key in myDict.keys()) {
if (len(myDict[key]) == 0) {
//Do something
}
}
将您的值与变量名称一起存储为密钥,然后只测试每个密钥的值的长度。
这不是JavaScript。 – Xlander 2015-04-03 05:48:20
感谢您的接触,应该修复 – 2015-04-03 05:49:19
虽然这对我不起作用,但它确实帮助我意识到对象属性可以循环播放。我最终找到了一个在这里工作的答案:http://stackoverflow.com/questions/684672/loop-through-javascript-object – 2015-04-06 02:22:53
数组通常将数据存储在数字索引中,如0 1,2,n等。使用密钥将变量存储在Object中,然后使用该密钥访问变量,如下所示:
var data = {varName: var1, varName2: var2};
data['varName'] = //do your thing
您可以动态访问。
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
Object.getOwnPropertyNames()
返回一个数组,其元素是对应于可枚举和非枚举的属性的字符串直接发现在物镜。
// 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]);
});
这将看到这个阵列和预期产出是令人惊讶的是有用的。 – mplungjan 2015-04-03 05:45:43
我的问题非常简单,我没有在输出中寻求帮助。我不认为有必要展示一些可能无法实现的代码。 – 2015-04-03 05:49:58
数组不包含变量,它们具有包含值的属性。发布一些代码(甚至不是工作代码或伪代码)将有助于破译你正在努力实现的目标。 – RobG 2015-04-03 05:55:37