Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #39689

Re: Faster procedure then shift to remove first element of list or array?

Path csiph.com!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!news.mb-net.net!open-news-network.org!.POSTED.178.197.205.169!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: Faster procedure then shift to remove first element of list or array?
Date Thu, 18 Mar 2021 12:26:06 +0100
Organization PointedEars Software (PES)
Lines 36
Message-ID <11719837.O9o76ZdvQC@PointedEars.de> (permalink)
References <ec6dacb2-0ac5-4ae3-bc3e-62bf086557ddn@googlegroups.com> <adb38a78-7566-46ba-844f-3a126419e0b3n@googlegroups.com>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
Injection-Info gwaiyur.mb-net.net; posting-host="178.197.205.169"; logging-data="18379"; mail-complaints-to="abuse@open-news-network.org"
User-Agent KNode/4.14.10
Cancel-Lock sha1:1bUxSlxnqb1PAbNIMwiOCTz4VJM=
X-User-ID U2FsdGVkX18l4IY43MXzr6OyJVXMw3/Sq2p1DP68Hb5gRPggpjeLTA==
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Xref csiph.com comp.lang.javascript:39689

Show key headers only | View raw


Michael Haufe (TNO) wrote:

> On Wednesday, March 17, 2021 at 12:51:36 AM UTC-5, jonas.t...@gmail.com
> wrote:
>> is there a faster way to remove first element of array/list then shift?
> 
> Shift is probably fast enough. Have you tried profiling your code?

The algorithm of Array.prototype.shift() is of order 𝓞(n). The fastest way 
to delete the first element of a zero-indexed iterable is

  delete a[0]

which is of order 𝓞(1), whereas “a” refers to the iterable.  However, 
whether the afterwards non-existing first element (unless it is prevented by 
some mechanism) shows up not at all, or as “undefined” instead, depends on 
how the iterable is accessed, and the accessors and access hooks that may be 
defined.

And it does not change the "length" of the iterable, unless a corresponding 
“delete” hook has been defined (with Proxy).

However:

Array.prototype.shift() usually is not available for non-Array instances; so 
in order to use .shift(), it may be necessary to convert the non-Array to 
Array, or treat it as such (by Function.prototype.call()/.apply()), which 
can be expensive.

A direct, relatively efficient way corresponding to .shift() exists for 
NodeList implementations with nodeList.removeChild(nodeList.firstChild).

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Faster procedure then shift to remove first element of list or array? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2021-03-16 22:51 -0700
  Re: Faster procedure then shift to remove first element of list or array? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2021-03-17 06:09 -0700
    Re: Faster procedure then shift to remove first element of list or array? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2021-03-17 06:45 -0700
    Re: Faster procedure then shift to remove first element of list or array? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-03-18 12:26 +0100
      Re: Faster procedure then shift to remove first element of list or array? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2021-03-18 06:30 -0700
        Re: Faster procedure then shift to remove first element of list or array? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-03-19 02:59 +0100
        Re: Faster procedure then shift to remove first element of list or array? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2021-03-19 12:39 -0700
          Re: Faster procedure then shift to remove first element of list or array? "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2021-03-19 13:55 -0700
          Re: Faster procedure then shift to remove first element of list or array? "sc...@sauyet.com" <scott@sauyet.com> - 2021-03-19 14:42 -0700

csiph-web