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