2011-07-16 92 views
0
Array: ['Date Taken', 'Weight'], 

我有這樣的陣列,我迭代事情是這樣的:轉換的數組對象

for (vb = 0, len = Array.length; vb < len; vb++) { 
    alert(Array[vb]); // would give me the Array Values... 
} 

Obj: {DateTaken: 'this.getPicker()', Weight: 'this.getWeight()'} 
  1. 我怎麼能單獨的按鍵,當我打印的價值觀?我希望分別提醒密鑰和值
  2. 我正在構建對象的正確方法嗎?
  3. 一個鍵可以有多個值嗎?我的意思是DateTaken:'value 1, value 2'或類似的東西。
+0

你的問題沒有任何意義。你需要澄清你現在得到的和你想要達到的目標。 – david4dev

回答

1

好的,這是僞Javascript! :)

這裏是真正的JS:

var myArray = ['Date Taken', 'Weight']; 

for (var i = 0, len = myArray.length; i < len; i++) 
{ 
    alert(myArray[i]); // would totally give you myArray Values! 
} 

var myObj = { DateTaken: this.getPicker(), Weight: this.getWeight() }; 

要重複這兩個鍵和myObj值,你可以這樣做:

for (var i in myObj) 
{ 
    alert('the key is ' + i + ' and value is ' + myObj[i]); 
} 

myObj鍵可以包含任何東西,所以說如果你想在DateTaken多個字符串,那麼它會是這樣的:

var myObj = { DateTaken: ['aloha', 'mahalo', 'etc'], Weight: this.getWeight() }; 
+0

如何在DateTaken中打印多重值,並且可以只有字符串在其中... –

+0

@John myObj.DateTaken將爲您提供數組。然後你就像對待任何數組一樣迭代它。你的數組可以包含任何你想要的,字符串,對象,數組,函數等。 – pixelfreak

1

有人可能已將自定義鍵添加到對象原型,因此通常檢查所有鍵是否爲實際對象屬性是一種很好的做法。要遍歷一個對象鍵,那麼您需要:

var myObj = { DateTaken: this.getPicker(), Weight: this.getWeight() }; 
for (var key in myObj) { 
    if (myObj.hasOwnProperty(key)) { 
    alert("Key: " + key + ", value: " + myObj[key]); 
    } 
} 

如果你的值可以是數組,你可以結合你已經找到自己的陣列中的一個這種方法。我在這裏使用一個助手'輸出'字符串來組成輸出。

var myObj = { single: "foo", multiple: ["one", "two", 3] }; 

for (var key in myObj) { 
    if (myObj.hasOwnProperty(key)) { 
    var output = "key: " + key + ", value = "; 
    // Check for Array 
    if (typeof myObj[key] == "object" && myObj[key].length != undefined) { 
     output += "["; 
     for (var i = 0, len = myObj[key].length; i < len; ++i) { 
     output += myObj[key][i] + ","; 
     } 
     output += "]"; 
    } else { 
     output += myObj[key]; 
    } 
    alert(output); 
    } 
}