2015-05-07 8 views
5

Ich bin ziemlich neu und weiß nicht wirklich, wie diese Frage zu formulieren, also bitte bitte mit mir. Ich würde gerne Datensätze mit Arrays in Javascript behalten und sie nacheinander mit einem Zähler zugreifen. Zum Beispiel möchte ich jedes Stück Daten über eine Person, eine Person gleichzeitig anzeigen. Im Moment bin ich mit etwas entlang der Linien von dieser:Anfänger Javascript Arrays und Counter

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

Und dann Zugriff auf sie mit:

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

Ich hätte lieber jede Person, die Daten in ihrer eigenen Array. Zum Beispiel:

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); 

Wie würde ich dann auf jedes Stück des Arrays zugreifen, ein Array zu einer Zeit mit einem Zähler? Gibt es einen besseren Ansatz dafür? Ich würde über jede Hilfe oder Überweisung zu Informationen darüber freuen. Vielen Dank!

+9

Sie suchen verzweifelt nach Objekten :) Lesen Sie darüber auf [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

Ich stimme Sidd, Bar Link zu W3Schools – ShaneQful

+1

Yeah, W3Schools ist im Allgemeinen schrecklich, aber für grundlegende, Baukasten-Konzeptbeispiele könnte man schlechter machen. – Sidd

Antwort

6

Was Sie brauchen, ist eine Reihe von Menschen Objekte:

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

Hier ist eine saubere Art und Weise zu tun, was Sie für eine Liste von beliebiger Größe zu tun:

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 enthält jetzt ein Array von Person Objekte. Sie können auf den Vornamen der zweiten Person zugreifen, indem Sie einfach people[1].firstName eingeben