Array slice already allows negative indexes. `arr.slice(-1)[0]` works fine
for a quick and dirty "last item".

On Mon, Jul 24, 2017 at 3:19 PM, Tab Atkins Jr. <jackalm...@gmail.com>
wrote:

> On Sun, Jul 23, 2017 at 12:36 AM, Darien Valentine
> <valentin...@gmail.com> wrote:
> > Here are some related threads from the past:
> >
> > https://esdiscuss.org/topic/negative-indices-for-arrays
> > https://esdiscuss.org/topic/array-slice-syntax
> > https://esdiscuss.org/topic/javascript-language-feature-idea
> >
> > I think I’ve seen it mentioned a few other times too.
> >
> > The `arr[-1]` syntax is a non-starter I’m afraid, cause it’s just
> property
> > access. An array can already have a property with the key "-1".
> >
> > Personally I’d find it weird for slicing to be singled out for special
> > syntax. It’s just a method. However I’d agree that it’s quite awkward to
> do
> > things like `arr[arr.length - 1]` or `arr.slice().pop()` etc to access
> from
> > the right. I think in one of those threads someone proposed a method like
> > `Array.prototype.nth()` which would accept negative indices, though this
> > creates an odd asymmetry since (presumably) we would not want to use -0
> for
> > the last index.
>
> Yeah, -1 is the last index; it just does one round of "underflow"
> basically.
>
> > In general I think the functionality you’re describing could be useful
> but
> > that it could be served better by adding methods rather than syntax.
>
> Agreed. Slicing via Array#slice() can likely be extended to allow
> negative indexes, and even a third argument for steps to match Python
> (yay for the -1 step value, to get a slice in reverse!).  Adding an
> nth() that just takes a single positive or negative index would be
> nice.  That we still have to do `arr[arr.length -1]` is barbaric. ^_^
>
> (Only downside of negative indexes is that, when using it on
> iterators, you have to consume the entire iterator before you can
> return the desired value.)
>
> ~TJ
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to