我有一個數組,其中包含可能會改變位置的變量,我想創建一個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