Posted By

anagaiyahoocom on 03/22/11


Tagged


Versions (?)

Convert Array Like Object to an Array


 / Published in: JavaScript
 

Some HTMLCollection objects such as returned from document.getElementsByTagName() look like arrays but are not. You will need to run the object through slice.call() to convert to an actual array.

This function will convert array like objects into a real array. IE does not support slice.call(). The try-catch will genereate an exception and convert object to an array with a loop for IE.

  1. function makeArray(items)
  2. {
  3. try {
  4. //this converts object into an array in non-ie browsers
  5. return Array.prototype.slice.call(items);
  6. }
  7. catch (ex) {
  8. var i = 0,
  9. len = items.length,
  10. result = Array(len);
  11.  
  12. while(i < len) {
  13. result[i] = items[i];
  14. i++;
  15. }
  16.  
  17. return result;
  18.  
  19. }
  20. }
  21.  
  22. var inputs = document.getElementsByTagName('input');
  23.  
  24. var inp = makeArray(inputs);

Report this snippet  

You need to login to post a comment.