Obiekty i ich sumowanie

0

Hej wszystkim,

mam 3 obiekty:

  1. obiekt :

     {
         "id": "b3836a54-31f7-427b-a2d2-2d09323c7ab5",
         "name": "Alice - 1"
     },
     {
         "id": "0edf5981-ccc8-43c2-b32f-a5526c173a64",
         "name": "Bob - 2"
     },
     {
         "id": "9ed04c71-8d86-4083-a684-03d43c5d8225",
         "name": "Martin - 3"
     },
    
  2. obiekt

     {
       "id": "3cd02528-eeb1-4342-a63e-f0675006032c",
       "name": "Device - 1",
       "user": "b3836a54-31f7-427b-a2d2-2d09323c7ab5"
     },
     {
         "id": "1067daa9-7b59-456f-8cd1-79f38c2b0c10",
         "name": "Device - 2",
         "user": "b3836a54-31f7-427b-a2d2-2d09323c7ab5"
     },
     {
         "id": "94e88f37-57be-4b8c-ad6f-dc83387843ce",
         "name": "Device - 1",
         "user": "0edf5981-ccc8-43c2-b32f-a5526c173a64"
     },
    
  3. obiekt

    {
         "id": "5a7a8a5d-4a41-42fc-a0e7-7cd301234e0a",
         "name": "IOT - 1",
         "mobile": "3cd02528-eeb1-4342-a63e-f0675006032c"
     },
     {
         "id": "78496218-31cc-44e2-be4e-655d23f41812",
         "name": "IOT - 2",
         "mobile": "3cd02528-eeb1-4342-a63e-f0675006032c"
     },
     {
         "id": "d4ba9180-b500-4608-8faf-859bfb75017f",
         "name": "IOT - 1",
         "mobile": "1067daa9-7b59-456f-8cd1-79f38c2b0c10"
     },
    

W każdym obiekcie takich rekordów znajduję się po 15. ID obiektu pierwszego === USER obiektu drugiego, natomiast ID obiektu drugiego === MOBILE obiektu 3. W skrócie X użytkowników o powtarzającym się np imieniu Alice(obj1) ma urządzenie np router (obj2) do którego podłączone jest X urządzeń (obj3) moim zadaniem jest wypisanie ilu użytkowników o danym imieniu ma w sumie urządzeń podłączonych do routera

Aktualny mój kod:

mobileDevices.forEach(item => {
  let sum = 0;
  for (let i = 0; i < iotDevices.length; i++) {
  if (item.id === iotDevices[i].mobile) {
    iotDevices[i].mobile = 1;
    sum += iotDevices[i].mobile;
  }
  for (let j = 0; j < users.length; j++) {
  
    if (item.user === users[j].id) {
      var usersNames = JSON.stringify(users[j].name).replace(/[0-9/-/" "/-]/g, '');
    }
  }
}

console.log(`${usersNames} amount ${sum} `) })

Wynik :

Alice amount 2 
Alice amount 4
Bob amount 3
Bob amount 2
Martin amount 4
Henry amount 3
Olaf amount 3
Olaf amount 4
Alice amount 4
Alice amount 4
Bob amount 3
Bob amount 3
Martin amount 2
Martin amount 2
Olaf amount 3

Pomijając fakt powtarzania się zliczenia i imion nie mam pomysłu jak ugryźć tego typu problem za wszelkie rady serdeczne dzięki :)

0

po co robisz JSON.stringify(users[j].name)?

1
cerr napisał(a):

Hej wszystkim,

mam 3 obiekty:

  1. obiekt :
     {
         "id": "b3836a54-31f7-427b-a2d2-2d09323c7ab5",
         "name": "Alice - 1"
     },
     {
         "id": "0edf5981-ccc8-43c2-b32f-a5526c173a64",
         "name": "Bob - 2"
     },
     {
         "id": "9ed04c71-8d86-4083-a684-03d43c5d8225",
         "name": "Martin - 3"
     },
    

Próbuję zrozumieć posta, i mam odrzucające mnie wrażenie, że ani na paznokieć nie rozumiem założeń. Być może to ja rano mam coś ze sprawnością ???
Tytułu i treści również.

Słowa są ważne, one kierują myśleniem, a myślenie wykonaniem.
"Sumowanie obiektu" -> "sumowanie wartości/pola/właściwości z obiektów"
"mam 3 obiekty" -> "mam trzy kolekcje obiektów"

Pierwsze zdanie by rozdzieliło, a rozdzielanie to podstawa w programowaniu: a) wydzielenie pola/właściwości - b) sumowanie w pionie (z pomocą drugiego zdania). Nie da się programowac metoda "all in one", myślowe wydzielanie elementów to podstawa.

0
ZrobieDobrze napisał(a):

Próbuję zrozumieć posta, i mam odrzucające mnie wrażenie, że ani na paznokieć nie rozumiem założeń. Być może to ja rano mam coś ze sprawnością ???
Tytułu i treści również.

Ależ przydałby się transfer "wiedzy" .. taki telepatyczny. A tak trzeba tłumaczyć wszystko na archaiczny tekst, mowę lub gesty. Dobrze, że chociaż emotikony są ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1