Json Array filtern und ausgeben (nodeJS)


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

TheGateway

Mitglied
Hi,

ich hab folgendes Array:


Code:
var users = [];

dort speicher ich wie folgt Daten ab:

Code:
users.push({ "id": socket.id, "username": username, "room": room, "ipadresse": socket.client.conn.remoteAddress });

und das bekomme ich zurück bei console.log(users);

Code:
{
  id: '-FuBzHI0FLvbMbqeAAAB',
  username: 'tester',
  room: 'testRaum',
  ipadresse: '::ffff:xxxxxxxxx'
}


jetzt meine frage dazu, wie lese ich zumbeispiel alle einträge aus, und gebe dabei nur den usernamen wieder, oder NUR den room?

ich hab es mit for probiert, key und value aber ich bin am ende meiner Gedult :)

funktioniert leider nicht, wär ja auch zu schön gewesen
Code:
console.log(users.username);

Könnte mir da jemand nen heißen tipp geben, wie ich mir die gespeicherten Daten ausgeben kann, sodass ich eine auflistung aller usernames habe im array... Herzlichen dank!
 
Zuletzt bearbeitet:

Sempervivum

Erfahrenes Mitglied
Am besten machst Du das mit forEach(), da es ein Array ist:
Code:
users.forEach((item, idx) => {
    console.log(item.username);
});
Edit: Ups, ich sehe gerade, das ist nodejs. Gibt's da auch forEach? :rolleyes:
 

TheGateway

Mitglied
Erstmal danke, klappt wunderbar, die frage ist jetzt, wo ich das nachlesen kann, woher nimmst du was dort item? ist das frei wählbar ? damit ich es auch kapiere hehe
 

Sempervivum

Erfahrenes Mitglied
Das ist schön, dass Du es nicht nur einfach kopieren sondern auch verstehen willst :)

Dieses:
Code:
(item, idx) => {
    console.log(item.username);
}
ist die Kurzschreibweise für eine anonyme Funktion. Sie wird für jedes Element in deinem Array aufgerufen und bekommt als Parameter das aktuelle Element (item) und dessen Index (idx). Wie Du diese Parameter nennst ist egal und das idx kannst Du auch weglassen, da Du es in diesem Fall nicht brauchst. D. h. dieses wird auch funktionieren:
Code:
users.forEach((ele) => {
    console.log(ele.username);
});
forEach scheint in node.js das gleiche zu sein wie in normalem JS, d. h. du müsstest es auch hier nachlesen können:
 

TheGateway

Mitglied
ich habe mir sämtliche Array Beschreibungen durchgelesen, da dies meine ersten versuche sind mit Arrays, aber bislang habe ich kein Tutorial verstanden, ich weis zwar wie man hinzufügt, aber das wars auch schon, jetzt weis ich zumindest wie ich auf die Elemente zugreife hehe, danke nochmal
 

Sempervivum

Erfahrenes Mitglied
Nein, das setzt voraus, dass Du schon ein Element des Arrays hast wie es innerhalb der anonymen Funktion beim forEach der Fall ist. Willst Du ohne das zugreifen, musst Du den Index angeben, so:
let theroom = users[2].room;
let theusername = users[2].username;
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…