• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica obiektów - zawartość nie jest wyświetlana prawidłowo

VPS Starter Arubacloud
0 głosów
327 wizyt
pytanie zadane 4 listopada 2015 w JavaScript przez ScriptyChris Mędrzec (190,190 p.)

Chcę utworzyć tablicę, do której dynamicznie będą dodawane obiekty.

Na początku napisałem coś takiego, ale zamiast wyświetlać obiekty w formie "klucz: wartość", wyświetla się po prostu 8 razy [object Object]:

var lab = ["producent","model-line","model","freq","cores","threads","quantity","netto-price"];
var val = ["AMD","ATHLON","7750","2.6","6","2","7","250.00"];
var products = [];
for (i=0; i<lab.length;i++)
{
    products.push({label: lab[i], value: val[i]});
    console.log("Tablica obiektow (produktow): "+products[i]);
}
console.log('PRODUKTY: '+products);

3 odpowiedzi

+3 głosów
odpowiedź 4 listopada 2015 przez Comandeer Guru (599,730 p.)

Polecam zapoznać się z Object.keys i z wbudowanym mechanizmem toString (czyli niejawnej konwersji do typów prostych)

0 głosów
odpowiedź 4 listopada 2015 przez Mlody89 Mądrala (6,920 p.)

Prawdę mówiąc nie pamiętam czy da się w JS zrobić tablice z wartościami klucza i odpowiadającej mu wartości ale expertem nie jestem. Widziałem że z tym problemem radzono sobie tworząc tablice 2D np:

var produkty = [['producent','AMD'],['cena', 500],['jednostka', 'cebuliony']];

Żeby użyć pary klucz + wartosć możesz użyć obiektu mapy (Tu masz do poczytania o tym https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Keyed_collections#WeakMap_object)

A tu cos takiego udało mi się sklecić http://codepen.io/anon/pen/zvJYvE

Tyle ode mnie, moze jak ktoś bardziej doświadczony się wypowie to ci coś więcej pomoże :)

0 głosów
odpowiedź 4 listopada 2015 przez ScriptyChris Mędrzec (190,190 p.)

Dziwna rzecz, ale problem był w uzyciu znaku '+' w obu console.log (działa z użyciem przecinka). Gdy zapisze je w poniższy sposób, to jest ok.

console.log("Tablica obiektow (produktow): ", products[i]);

console.log('PRODUKTY: ', products);

Dlaczego przy wypisywaniu zmiennych albo elementów tablic, poszczególne "rzeczy" dodaje się operatorem plusa, a przy obiekcie musi to być przecinek?

komentarz 4 listopada 2015 przez furas Maniak (53,800 p.)

console.log przyjmuje dowolną ilość argumentów oddzieloną przecinkami. Równie dobrze możesz podawać w ten sposób zmienne i tablice. Wydaje mi się, że będzie to nawet bardziej naturalne.

W przypadku użycia + elementy są łączone w jeden napis i dopiero potem przekazywane do console.log jako jeden argument. Może console.log ma wbudowane lepsze narzędzia do zamiany obiektu na napis niż potrafi to +

komentarz 11 listopada 2015 przez Comandeer Guru (599,730 p.)

Może console.log ma wbudowane lepsze narzędzia do zamiany obiektu na napis niż potrafi to +

Przecież konsola nie przeprowadza żadnej konwersji. To, co zwraca, jest czystym obiektem przedstawionym w sensowny sposób. 

Podobne pytania

0 głosów
2 odpowiedzi 625 wizyt
pytanie zadane 11 maja 2016 w C i C++ przez sebask08 Użytkownik (510 p.)
0 głosów
1 odpowiedź 107 wizyt
0 głosów
1 odpowiedź 566 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...