2013-03-12 119 views
5

我試圖獲取JavaScript數組中所有元素的列表,但我注意到使用array.toString並不總是顯示數組的所有內容,甚至當數組中的一些元素已經被初始化時。有什麼方法可以用JavaScript打印數組的每個元素,以及每個元素的相應座標嗎?我想找到一種方法來打印已經在數組中定義的所有座標列表,以及每個座標的相應值。獲取JavaScript數組中所有元素的列表

http://jsfiddle.net/GwgDN/3/

var coordinates = []; 
coordinates[[0, 0, 3, 5]] = "Hello World"; 

coordinates[[0, 0, 3]] = "Hello World1"; 

console.log(coordinates[[0, 0, 3]]); 
console.log(coordinates[[0, 0, 3, 5]]); 
console.log(coordinates.toString()); //this doesn't print anything at all, despite the fact that some elements in this array are defined 
+0

編號建議你使用Firefox和下載螢火插件。我曾經有過這樣的q,直到我得到插件。 – 2013-03-12 05:41:53

+0

或者使用[Google Chrome瀏覽器](https://www.google.com/intl/zh-CN/chrome/browser/),有很棒的開發者工具。 – sweetamylase 2013-03-12 05:47:38

+0

我沒有倒下,但也許是因爲這個問題很容易用少量的研究和/或閱讀來回答。有時,在提問之前,似乎OP被困在某些事物上3分鐘時,它很容易降低合理的問題。 – jahroy 2013-03-12 05:58:54

回答

6

實際上當使用座標[[0,0,3]]那麼這意味着座標與[0對象, 0,3]作爲關鍵。它不會將元素推送到數組,而是將一個屬性附加到該對象。所以使用循環對象的這條線。 See this for other ways to loop through object properties

Object.keys(coordinates).forEach(function(key) { 
    console.log(key, coordinates[key]); 
}); 

http://jsfiddle.net/GwgDN/17/

+2

這是我找到的第一個工作解決方案。非常感謝。 :) – 2013-03-12 05:57:23

1
for (i=0;i<coordinates.length;i++) 
{ 
document.write(coordinates[i] + "<br >"); 
} 
+0

它在這種情況下根本不打印任何東西:http://jsfiddle.net/ GwgDN/8/ – 2013-03-12 05:49:59

1

使用的聯接功能讓array.use的所有元素下面的代碼

for (var i in coordinates) 
{ 
    if(typeof coordinates[i] == 'string'){ 
     console.log(coordinates[i] + "<br >"); 
    } 
} 
+0

我仍然有同樣的問題:'coordinates.join(「,」)'在這種情況下不會打印任何東西。 http://jsfiddle.net/GwgDN/7/ – 2013-03-12 05:47:09

+0

我已更新此請檢查 – 2013-03-12 05:49:58

+0

而不是打印座標,它現在打印的功能列表:http://jsfiddle.net/GwgDN/10/ – 2013-03-12 05:52:19

0

看在調試器座標,你會看到你已經設置的屬性[0,0,3,5]和[0,0,3]的對象座標。這是儘管座標是一個數組,但您並未將其用作數組。

+0

我真正想做的是打印數組中每個元素的座標。 – 2013-03-12 05:48:37

3

使用類型 '對象',而不是 '數組' 爲座標

var coordinates = {}; 
coordinates[[0, 0, 3, 5]] = "Hello World"; 

coordinates[[0, 0, 3]] = "Hello World1"; 

console.log(coordinates[[0, 0, 3]]); 
console.log(coordinates[[0, 0, 3, 5]]); 
console.log(JSON.stringify(coordinates)); 

http://jsfiddle.net/5eeHy/

+0

返回空字符串 – 2013-03-12 05:51:39

+0

我在FF/Chrome中看到: 'Hello World1 Hello World {「0,0,3,5」:「Hello World」,「0,0,3」:「Hello World1」}' – 2013-03-12 05:54:12

+0

這是一個很好的解決方法,但我仍然想知道如何打印數組的定義座標而不是對象。 – 2013-03-12 05:55:28

相關問題