5 ms·
The error with the array just seems like poor practice. If you only want to deal with the contents of an array then you should use the [] with an integer index.
by nirmal 19y ago
The error with the array just seems like poor practice. If you only want to deal with the contents of an array then you should use the [] with an integer index.
- axod 19y agoI agree. You should NOT use 'for in' on an array. Secondly, if you use 'for in' on an object, the first line inside your loop will most usually be: if (e.hasOwnProperty(key)) This gets rid of anything defined on the prototype etc and would have solved the issue in the article. However, using for...in on an Array isn't good practice anyway.
- paul 19y agoYou should NOT use any library that messes with Object.prototype or Array.prototype, then this won't be a problem and the for loops will work just fine.
- axod 19y agoNot particularly, if you're extending your own objects, you could still get properties in a for...in that you weren't expecting, so hasOwnProperty is always a good idea. Regardless though, using for...in on an Array is bad practice and not a good idea. Just like having sparse Arrays in js is a bad idea.