Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Javascript (http://www.velocityreviews.com/forums/f68-javascript.html)
-   -   array.slice() question (http://www.velocityreviews.com/forums/t921753-array-slice-question.html)

Christopher Benson-Manica 12-06-2005 04:58 PM

array.slice() question
 
Is array.slice() guaranteed to return a zero-length array if the first
argument is greater than the length of the array? Or is it allowed to
throw an exception?

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.

Michael Winter 12-06-2005 07:12 PM

Re: array.slice() question
 
On 06/12/2005 16:58, Christopher Benson-Manica wrote:

> Is array.slice() guaranteed to return a zero-length array if the
> first argument is greater than the length of the array?


In a conforming implementation of ECMA-262, yes. I can't say that I've
ever called it with out-of-bounds arguments, though.

> Or is it allowed to throw an exception?


Built-in methods only throw exceptions in very specific and
unrecoverable circumstances. For instance, a syntax error in an eval
call, or a RegExp or Function constructor call, or applying non-generic
prototyped methods (like valueOf) to instances of different objects.
Arguments are usually normalized to values that make sense, especially
those that can be bounded to range.

Mike

--
Michael Winter
Prefix subject with [News] before replying by e-mail.

Christopher Benson-Manica 12-06-2005 08:25 PM

Re: array.slice() question
 
Michael Winter <m.winter@blueyonder.co.uk> wrote:

> In a conforming implementation of ECMA-262, yes. I can't say that I've
> ever called it with out-of-bounds arguments, though.


I'm creating a copy of an array with one item removed, like so:

var copyWithItemRemoved=someArray.slice( 0, idx ).concat( someArray.slice(idx+1) );

Am I missing a better way to do this? (See my next post, I will ask
in a new topic.)

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.

Evertjan. 12-06-2005 08:35 PM

Re: array.slice() question
 
Christopher Benson-Manica wrote on 06 dec 2005 in comp.lang.javascript:

> I'm creating a copy of an array with one item removed, like so:
>
> var copyWithItemRemoved=someArray.slice( 0, idx ).concat(
> someArray.slice(idx+1) );
>
> Am I missing a better way to do this? (See my next post, I will ask
> in a new topic.)
>


var theRemevedItem = someArray.splice(idx, 1)
var copyWithItemRemoved = someArray

--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)


Christopher Benson-Manica 12-06-2005 08:53 PM

Re: array.slice() question
 
Evertjan. <exjxw.hannivoort@interxnl.net> wrote:

> var theRemevedItem = someArray.splice(idx, 1)
> var copyWithItemRemoved = someArray


That isn't what I want, though - splice also modifies the original
array, which I am explicitly trying to avoid. I could, of course, do

var copyWithItemRemoved=someArray.slice( 0 );
copyWithItemRemoved.splice( idx, 1 );

but I'm not enthusiastic.

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.


All times are GMT. The time now is 12:55 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.