Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #36096
| Newsgroups | comp.lang.javascript |
|---|---|
| Date | 2019-03-06 10:13 -0800 |
| References | <ebc71280-6e53-4a6a-b11b-3e00a67031d3@googlegroups.com> <XnsAA0A7B698473Aeejj99@194.109.6.166> <d9c040cd-78af-4d59-898f-ae98fc87ff53@googlegroups.com> <XnsAA0ABF09FEEADeejj99@194.109.6.166> <5093e7fc-9f69-491d-af27-c0951aeeabf0@googlegroups.com> |
| Message-ID | <84acf88a-9f38-4fd1-b4fa-eab370878a06@googlegroups.com> (permalink) |
| Subject | Re: Cant pop and slice first second element |
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
Den onsdag 6 mars 2019 kl. 19:05:23 UTC+1 skrev Jonas Thörnvall:
> Den onsdag 6 mars 2019 kl. 18:46:54 UTC+1 skrev Evertjan.:
> > =?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 06
> > Mar 2019 in comp.lang.javascript:
> >
> > > Den onsdag 6 mars 2019 kl. 12:08:03 UTC+1 skrev Evertjan.:
> > >> =?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrot
> > > e on 06
> > >> Mar 2019 in comp.lang.javascript:
> > >>
> > >> > I have an trackarray where i want to be able remove all but first
> > >> > element.
> > >> >
> > >> > If i stand on last element i pop it otherwise i slice it. But if i
> > >> > pop all tracks, i never able to pop track 2. Similar when splice
> > >> > invoked it will not splice when standing on track one, and stop
> > >> > remove tracks when it removed all beyond track 2. "Because then pop
> > >> > is invoked", i probabl
> > > y
> > >> > should used length instead of maxtrack.
> > >> >
> > >> > function removeTrack(tracknr){
> > >> > console.log(maxtrack+" AND "+tracknr);
> > >> > if (maxtrack>1){
> > >>
> > >> Wrong counting and thinking, try:
> > >>
> > >> if (maxtrack>0){
> > >>
> > >>
> > >> > if (maxtrack==tracknr){ track.pop(); tracknr--;
> > >> > maxtrack--;document.getElementById("track").value--;} else
> > >> > {track.splice(tracknr, 1); maxtrack--;} changeTrack();}
> > >> >}
> >
> > >
> > > Thank's Evertjan, unfortunately it is not it.
> >
> > Well you did not show us how you came to maxtrack,
> > you should do this:
> >
> > maxtrack = track.length - 1;
> >
> > and test it in each case, NOT:
> >
> > maxtrack--;
> >
> > > I suspect something goes
> > > wrong out side function, i really do not get it because after i set to
> > > zero.
> >
> > (maxtrack>1)
> >
> > will in my example return false if maxtrack is either 1 or 0,
> > so ALSO if there are TWO members of the array left.
> >
> > > I still can't remove the two last tracks but they are visually
> > > written out, but they can't be there because tracknr = maxtrack is down
> > > at zero.
> >
> > You must mean "tracknr == maxtrack"
> > and that NEVER returns zero or any other number,
> > only true or false.
> >
> > > I will have to check what is going on elsewhere, because the
> > > maxtrack and tracknr goes down to zero but the two tracks still written
> > > out. I have to check track.length with console.log.
> >
> > NO. Debugging is fine, but should not come in the place of decent code
> > writing.
> >
> > Please stop using outside variables in a funtion to be tested,
> > since then you cannot test such function outside the context,
> > which makes interpretation of the debugging process a nightmare.
> >
> > Try this as a test:
> >
> > =========================
> >
> > <script>
> >
> > function removeTrack(trackNr, trackArray) {
> > let maxTrack = trackArray.length - 1;
> > if (maxTrack>0) {
> > if (maxTrack==trackNr) {
> > trackArray.pop();
> > } else {
> > trackArray.splice(trackNr, 1);
> > };
> > };
> > console.log('now:', trackArray);
> > };
> >
> > let myTrackArray = ['one', 'two', 'three', 'four', 'five' ];
> > console.log('start:', myTrackArray);
> >
> > </script>
> >
> > <button onclick='removeTrack(1, myTrackArray)'>Remove second</button>
> > and look in console.
> >
> > =========================
> >
> > NOW change in the above:
> >
> > if (maxTrack==trackNr) {
> >
> > to:
> >
> > if (false) {
> >
> > and conclude that the seperate pop() is unnecessary.
> >
> >
> >
> > --
> > Evertjan.
> > The Netherlands.
> > (Please change the x'es to dots in my emailaddress)
>
> Aren't you avoiding the problem a bit Evertjan, isn't the problem also position the tracknr after remove, so you nned the popcase? Because you must remove 1 from tracknr? Or am i wrong? Basicly if i pop "active track" tracknr--. But if there is elements after i can just remove it because i can have same "active track?"
>
> Best regards JT
Well i could always set tracknr to 1 after remove.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 01:41 -0800
Re: Cant pop and slice first second element "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2019-03-06 12:07 +0100
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 07:42 -0800
Re: Cant pop and slice first second element "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2019-03-06 18:46 +0100
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 10:05 -0800
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 10:13 -0800
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 10:17 -0800
Re: Cant pop and slice first second element "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2019-03-06 23:52 +0100
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 08:45 -0800
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 09:19 -0800
Re: Cant pop and slice first second element Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-03-06 09:42 -0800
csiph-web