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