Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

delete methods added to array prototype ?

1 view
Skip to first unread message

gerry

unread,
Feb 24, 2009, 12:16:29 PM2/24/09
to
I have to do some work with a 3rd party javascipt library that adds methods
to the Array prototype.
Of course this messes up anything that does a for...in expecting to only get
items contained within the array as it now returns the additional method
names as well.

I came up with this little routine that works perfectly in IE but does
nothing in any other browser :
function cleanArray( arr )
{
if ( !( arr && arr instanceof Array ) )
arr = new Array();
for( var key in arr )
{
if ( typeof(arr[key]) == 'function' )
delete arr[key];
}
return arr;
}

So it looks like MS is implementing delete in a useful but not standard way.
Is there any other way to get/create a 'clean' array without the extra
methods that have been added to the Array prototype ?

Gerry


Martin Honnen

unread,
Feb 24, 2009, 12:30:46 PM2/24/09
to
gerry wrote:
> I have to do some work with a 3rd party javascipt library that adds methods
> to the Array prototype.
> Of course this messes up anything that does a for...in expecting to only get
> items contained within the array as it now returns the additional method
> names as well.

Use a classic for loop to access the array items:
for (var i = 0, l = a.length; i < l; i++)
{
var item = a[i];
}

As for the for..in loop, you can at least check
for (var p in a)
{
if (a.hasOwnProperty(p))
{
...
}
}


--

Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/

Allen Chen [MSFT]

unread,
Feb 25, 2009, 2:16:36 AM2/25/09
to
Hi Gerry,

I think Martin's answer is correct. If you have additional questions please
feel free to ask. I'll do my best to follow up.

Regards,
Allen Chen
Microsoft Online Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msd...@microsoft.com.

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.

Allen Chen [MSFT]

unread,
Feb 27, 2009, 2:18:38 AM2/27/09
to
Hi Gerry,

Have you solved this issue?

gerry

unread,
Mar 5, 2009, 6:26:51 AM3/5/09
to
essentially we replaced the 3rd party lib with in an in-house lib that
doesn't modify the array prototype.


"Allen Chen [MSFT]" <v-al...@online.microsoft.com> wrote in message
news:ybu4fuKm...@TK2MSFTNGHUB02.phx.gbl...

0 new messages