2013-03-12 24 views
5

Próbuję uzyskać listę wszystkich elementów znajdujących się w tablicy JavaScript, ale zauważyłem, że używanie array.toString nie zawsze pokazuje całą zawartość tablicy, nawet gdy niektóre elementy tablicy zostały zainicjowane. Czy istnieje sposób drukowania każdego elementu tablicy w JavaScript, wraz z odpowiednimi współrzędnymi dla każdego elementu? Chcę znaleźć sposób wydrukowania listy wszystkich współrzędnych, które zostały zdefiniowane w tablicy, wraz z odpowiednimi wartościami dla każdej współrzędnej.Wyświetl listę wszystkich elementów w tablicy 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

Id radzimy używać Firefoksa i pobrać dodatek Firebug. Kiedyś miałem tak, dopóki nie dostałem dodatku. –

+0

Lub użyj [przeglądarki Google Chrome] (https://www.google.com/intl/pl/chrome/browser/), ma świetne narzędzia dla programistów. – sweetamylase

+0

Nie spadłem, ale może dlatego, że łatwo byłoby odpowiedzieć na to pytanie z małą ilością badań i/lub czytania. Czasami kuszące są uzasadnione pytania, gdy wydaje się, że OP został zatrzymany na coś przez 3 minuty, zanim zadał pytanie. – jahroy

Odpowiedz

6

Faktycznie po użyciu współrzędnych [[0, 0, 3]] oznacza to współrzędne obiektu z [0, 0, 3] jako klucz. Nie popchnie elementu do tablicy, ale doda właściwość do obiektu. Tak więc użyj tej linii, która przechodzi przez obiekty. 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

To pierwsze działające rozwiązanie, które znalazłem. Wielkie dzięki. :) –

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

To nie drukuje nic w tym przypadku: http://jsfiddle.net/ GwgDN/8/ –

1

użycie funkcji przyłączyć się wszystkie elementy array.use następujący kod

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

Nadal mam ten sam problem: 'coordinates.join (", ")' nie drukuje nic w tym przypadku. http://jsfiddle.net/GwgDN/7/ –

+0

Zaktualizowałem to proszę sprawdzić –

+0

Zamiast drukować współrzędne, teraz drukuje listę funkcji: http://jsfiddle.net/GwgDN/10/ –

0

Spójrz na współrzędne w debugera i widać, że zostało ustawione właściwości [0,0, 3,5] i [0,0,3] z współrzędnych obiektu obiektu. Mimo to współrzędne to tablica, której nie używasz jako tablicy.

+0

Co naprawdę chcę zrobić, to wydrukować współrzędne każdego elementu w tablicy. –

3

Zastosowanie typu 'obiekt', a nie 'tablica' dla współrzędnych

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

powrót pusty ciąg –

+0

Widzę w FF/Chrome: 'Hello World1 Hello World {" 0,0,3,5 ":" Hello World "," 0,0,3 ":" Hello World1 "}' –

+0

Jest to dobre rozwiązanie, ale nadal chcę wiedzieć, jak wydrukować zdefiniowane współrzędne tablicy zamiast obiektu. –

Powiązane problemy