I really adore the slicing syntax. Just as a quick fix, though,
> arr[begin,]; // => arr[begin, arr.length];
should obviously return `arr[begin, arr.length - 1]`.

Honestly, I'm not too sure if the "easy push" syntax is particularly self-
explanatory. There might be better alternatives.

On Freitag, 22. Januar 2016 22:32:42 CET Alican Çubukçuoğlu wrote:
> More cool stuff:
> ```javascript
> const arr = [1, 2, 3];
> 
> // Easy push
> arr[] = 4; // => arr[arr.length];
> 
> // Easy s(p)lice
> arr[begin, end];,
> arr[begin,]; // => arr[begin, arr.length];
> arr[begin, end] = [1, 2, 3];
> ```
> 
> A terrible example (terrible because this should be done with WebGL
> shaders):
> ```javascript
> const image = [ /* Umbagajillion of RGBA pixels */ ];
> 
> function manipulate(rgba) {
>   rgba[0] += 10;
>   rgba[1] += 10;
>   rgba[2] += 10;
> }
> 
> for (let i = 0; i < image.length / 4; i++) {
>   const begin = i * 4;
>   const end = begin + 4;
> 
>   /*
>     In case easy s(p)lice doesn't actually Array.p.slice
>     and just creates a limited view of the array
>     without breaking reference
>     (image[begin, end] === image[begin, end])
>   */
>   manipulate(image[begin, end]);
> 
>   /*
>     In case easy s(p)lice does Array.p.slice
>     and creates a new array
>     (image[begin, end] !== image[begin, end])
>   */
>   const pixel = image[begin, end];
>   manipulate(pixel);
>   image[begin, end] = pixel;
> }
> ```


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to