2015-05-07 13 views
5

Jestem całkiem nowy i nie bardzo wiem, jak wyrazić to pytanie, więc proszę o zachowanie mnie. Chciałbym zachować zestawy danych za pomocą tablic w javascript i uzyskać do nich dostęp sekwencyjnie za pomocą licznika. Na przykład chciałbym wyświetlić wszystkie dane dotyczące osoby, jednej osoby na raz. Teraz używam coś wzdłuż linii to:Początkowe tablice JavaScript i licznik

var firstNames = new Array("John", "Bob", "Anna", "Natalie"); 
var lastNames = new Array("Smith", "Price", "Johnson", "Baker"); 
var ages = newArray(34, 51, 12, 83); 

I wtedy dostęp do nich z:

counter++; 
firstNames[counter]; 
lastNames[counter]; 
ages[counter]; 

wolałbym mieć dane każdej osoby w ich własnej tablicy. Na przykład:

var person1 = new Array("John", "Smith", 34); 
var person1 = new Array("Bob", "Price", 51); 
var person1 = new Array("Anna", "Johnson", 83); 
var person1 = new Array("Natalie", "Baker", 12); 

Jak bym wtedy dostęp do każdego elementu tablicy, jedna tablica naraz przy użyciu licznika? Czy istnieje lepsze podejście do tego? Byłbym wdzięczny za każdą pomoc lub odesłanie do informacji na ten temat. Dzięki!

+9

Rozpaczliwie szukasz obiektów :) Przeczytaj o nich na [MDN] (https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Guide/Working_with_Objects), [W3Schools] (http://www.w3schools.com/js/js_objects.asp) – Sidd

+0

Muszę się zgodzić z Siddem, pasek z linkami do W3Schools – ShaneQful

+1

Tak, W3Schools jest generalnie okropny, ale dla podstawowego, przykłady bloków konstrukcyjnych, które można by zrobić gorzej. – Sidd

Odpowiedz

6

Co trzeba jest tablicą ludzi obiektów:

var person1 = {firstName:"John", lastName:"Smith", age: 34}; 
var person2 = {firstName:"Bob", lastName:"Price", age: 51}; 
var person3 = {firstName:"Bob2", lastName:"Price2", age: 52}; 

var people = [person1, person2]; 

//you can also add to the list with push 
people.push(person3); 

var a = people[0].firstName; //John; 
1

Oto czysty sposób robienia tego, co chcesz zrobić na liście arbitralnej rozmiar:

function Person(fn, ln, a) { 
    this.firstName = fn; 
    this.lastName = ln; 
    this.age = a; 
} 

var firstNames = new Array("John", "Bob", "Anna", "Natalie"); 
var lastNames = new Array("Smith", "Price", "Johnson", "Baker"); 
var ages = new Array(34, 51, 12, 83); 

var people = new Array(); 

for (var i = 0; i < firstNames.length; ++i) { 
    people.push(new Person(firstNames[i], lastNames[i], ages[i])); 
} 

people zawiera obecnie tablica obiektów Person. Możesz uzyskać dostęp do imienia drugiej osoby, po prostu wpisując: people[1].firstName