An array destructing specification choice

Allen Wirfs-Brock allen at wirfs-brock.com
Sat Nov 5 10:24:10 PDT 2011


On Nov 5, 2011, at 9:59 AM, John J Barton wrote:

>> 
> 
> (Oh great more features that turn programming into little brain teasers :-( )
> 
> Devs need an algorithm:
> 
> let _lhs = [];
> let _rhs =  {0:0, 1:1, length: 2, 2:2};
> _lhs[0] = _rhs[0];
> _lhs[1] = _rhs[1];
> _lhs[2] = _rhs[2];
> let z = _lhs[0];
> let y = _lhs[1];
> let z = _lhs[2];
> 
> So z would be 2.
> 
> I guess the algorithm can be shorter:
> let _rhs =  {0:0, 1:1, length: 2, 2:2};
> let z = _rhs[0];
> let y = _rhs[1];
> let z = _rhs[2];
> 
> I don't understand what " the source object is only has two
> "array-like" elements" can mean.


If you used any of the array functions to process _rhs, they would ignore element 2.  For example:

  _rhs.forEach(function(v) {print(v)});

would print: 0 1


Allen





More information about the es-discuss mailing list