@Michał: That really depends on the point of view: If you need zero-based indexing from the right, as `[]` does from the left, you'd use `Array.prototype.last`.
On Samstag, 23. Januar 2016 20:56:02 CET Michał Wadas wrote: > I can't consider `.last(1)` method to be readable... > But I think `.nth(n)` method with support for negative index would be > really useful. > > 2016-01-23 17:32 GMT+01:00 kdex <[email protected]>: > > Not every feature addition is due to performance or paradigms. Just have a > > look at ES2015: I'm sure that this has neither been the motivation for > > `String.prototype.startsWith`nor for `String.prototype.includes`. Even > > `String.prototype.repeat` appears so simple that a loop paired with a > > concatenation could have become a popular alternative. > > > > Of course you could solve most of these string problems with earlier > > versions > > of the language, too, often explicitly thinking with incides. But on the > > downside, your code suddenly becomes a potentially unintuitive, > > index-ridden > > mess, introducing off-by-one and out-of-bound errors (it even happened to > > someone on this thread, too, if you review Thomas' code from above). This > > isn't really all too much about saving keystrokes, but mainly about > > writing > > clean, readable and maintainable code. > > > > There's array::back in C++, negative indices in Python as well as Bash or > > end > > in PHP, so I don't see any reason why we should complicate things for > > people > > coming from these languages. Nor to I see why we should torture ourselves > > thinking about how the underlying data structure stores its elements > > internally when all I care about is reading the last element. > > > > Just ask yourself: Do you think it's substantially more readable to write > > > > ```js > > [1, 2, 3].slice(-2)[1]; > > ``` > > over > > ``` > > [1, 2, 3].last(1); > > ``` > > ? > > > > If it comes to write access, I agree that`Symbol.last` could be another > > handy > > addition (it doesn't have to be an "either/or" discussion, really): > > > > [1, 2, 3][Symbol.last]; // 3 > > [1, 2, 3][Symbol.last] = 4; // 4 > > [1, 2, 3].last(1); // 2 > > > > On Samstag, 23. Januar 2016 18:01:24 CET Bob Myers wrote: > > > On Sat, Jan 23, 2016 at 12:54 PM, kdex <[email protected]> wrote: > > > > [1, 2, 3].last(); // 3 > > > > > > I'm wondering what the ultimate motivation for suggestions like this is. > > > > Is > > > > > it to save key strokes? Allow more semantic coding? Support new > > > > paradigms? > > > > > Performance? 'm sure someone has already come up with a good > > > > categorization > > > > > like this, would someone mind providing a link? Could one of these be > > > considered the "theme" for the next version? > > > > > > I have to admit to be being quite negative about proposals of the form > > > "Hey, this other language does X, can we do that too?", or "It would be > > > > so > > > > > cool if we could do Y", especially when these are mostly about syntax. > > > > Is a > > > > > missing `last` really one of our painpoints? > > > > > > Bob > > > > _______________________________________________ > > es-discuss mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

