Springen naar inhoud

4gamers.be


Foto

Javascript: Array filteren


  • Please log in to reply
4 replies to this topic

#1 rafbanaan

rafbanaan

    Crew

  • Crew
  • 12905 berichten

Posted 02 September 2014 - 03:28

Ik via Javascript wat code geschreven die data via een RESTapi ophaalt, maar ik heb een probleempje.

 

Ik wil de lijst filteren op items die enkel overeenkomen met een variabele. Ik heb hieronder wat dummy code staan die het moet voorstellen.

 

Bv. restapi ouput:

<Entry>
  <title>Test</title>
  <numbers>2</numbers>
</Entry>
<Entry>
  <title>Test2</title>
  <numbers>1</numbers>
</Entry>
<Entry>
  <title>Test34</title>
  <numbers>2</numbers>
</Entry>
<Entry>
  <title>Test</title>
  <numbers>2</numbers>
</Entry><Entry>
  <title>Test</title>
  <numbers>1</numbers>
</Entry>

 

var dum -> Hier zit alle data in die ik verkreeg via men RESTapi. Het heeft een veld numbers waar ik alles op wil filteren.

 

var c = 1;

 

var j;

for(j = 0; j < dum.length ; ++j {

         if(dum[j].numbers ==  c) {

              dum.splice(j,1);

}

}

 

 

Probleem is dat ik niet echt mee ben met de splice methode, waardoor hij dus niet het correcte wegneemt. Nu krijg ik iets random erin.

 

Wat ik wil overhebben is enkel deze items in dum, dus de entry's met numbers = 2 -> weg.

<Entry>
 <title>Test2</title>
<numbers>1</numbers>
</Entry>
</Entry><Entry>
 <title>Test</title>
<numbers>1</numbers>
</Entry>

Alvast bedankt!


  • 0

PSN ID/STEAM ID/ORIGIN ID: Tha_soh

Xbox Live ID: Tha soh

 

The 4Gamers PC-build generator


#2 valies

valies

    Crew

  • Crew
  • 8825 berichten

Posted 02 September 2014 - 08:12

Ik ken Javascript niet zo goed en ken de methode niet, maar heb even liggen googlen en 'k kom op hetzelfde uit :/

Er ontbreekt wel een haakje in je code na "++j", maar da's wellicht een typo hier op het forum?

En owja ik doe altijd suffix ++ uit gewoonte, maar dat maakt het verschil niet.

 

var c = 2;

for (int i = 0; i < dum.Length(); i++)
{
 if (dum[i].numbers == c)
 {
  dum.slice(i,1);
 }
}

 

Heb je al eens debugged om te kijken wat hij juist doet?

 

 

Edit: Ah wacht, ligt het niet aan het feit dat je blijft verdertellen, terwijl je de array al wel hebt gewijzigd en je dus zo sommige items overslaat?

Mss beter een copy nemen. Dan door het originele loopen, maar enkel de copy aanpassen.

 

Ik werk zelf meestal (in C# dan) met Lists aangezien Arrays zo onhandig zijn om te bewerken :/


  • 0

PSN valies - 3DS 1908-2322-5163 - twitter @valies
As long as people continue to pursue the meaning of freedom, they will never cease to be o/
Baka!


#3 rafbanaan

rafbanaan

    Crew

  • Topic Starter
  • Crew
  • 12905 berichten

Posted 02 September 2014 - 12:23

Ik heb nu wat ghetto opgelost, omdat ik niet meteen op een mooiere oplossing kwam :p

 

Ik heb nu inderdaad een copy gemaakt van de array. In plaats van slice gebruik ik nu delete. Ik delete nu alles wat groter of kleiner is dan het geen ik wil. Het resultaat is dan wel wat fucked, omdat de array zijn index niet aanpast (array bestaat dan uit 2 items met bv. index 5 en 9 ipv 0 en 1), maar dat kon ik oplossen met een sort.

 

Merci voor die hint van de copy ^^


  • 0

PSN ID/STEAM ID/ORIGIN ID: Tha_soh

Xbox Live ID: Tha soh

 

The 4Gamers PC-build generator


#4 valies

valies

    Crew

  • Crew
  • 8825 berichten

Posted 02 September 2014 - 12:29

Ik heb nu wat ghetto opgelost, omdat ik niet meteen op een mooiere oplossing kwam :p

 

Ik heb nu inderdaad een copy gemaakt van de array. In plaats van slice gebruik ik nu delete. Ik delete nu alles wat groter of kleiner is dan het geen ik wil. Het resultaat is dan wel wat fucked, omdat de array zijn index niet aanpast (array bestaat dan uit 2 items met bv. index 5 en 9 ipv 0 en 1), maar dat kon ik oplossen met een sort.

 

Merci voor die hint van de copy ^^

Yay :)

 

Stomme arrays :p


  • 0

PSN valies - 3DS 1908-2322-5163 - twitter @valies
As long as people continue to pursue the meaning of freedom, they will never cease to be o/
Baka!


#5 Varengas

Varengas

    On a roll

  • Member
  • PipPip
  • 678 berichten

Posted 02 September 2014 - 13:35

 

Stomme arrays :p

Stomme arrays in JS ;)


  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users