fevangelou
6/19/2011 - 11:10 PM

polyfill an ES5-compatibile Array.isArray where needed.

polyfill an ES5-compatibile Array.isArray where needed.

<!DOCTYPE html> 
<title>Foo</title>
<div>Expected value: <b>false, true, false, false, false, false</b></div>
<div>Actual value: <b id="ret"></b></div>
<script>
  // write a small example that shows off the API for your example
  // and tests it in one fell swoop.

  var isArray = Array.isArray||(Array.isArray=function(a){return''+a!==a{}.toString.call(a)=='[object Array]'});

  document.getElementById( "ret" ).innerHTML = [isArray({}), isArray([]), isArray(""), isArray(0), isArray(true), isArray('[object Array]')];
</script>
{
  "name": "isarray",

  "description": "polyfill an ES5-compatibile Array.isArray where needed.",

  "keywords": [
    "polyfill",
    "es5",
    "isArray"
  ]
}
Array.isArray||(Array.isArray=function(a){return''+a!==a&&{}.toString.call(a)=='[object Array]'});
// only set function if not already available
Array.isArray || (Array.isArray = function(
    a // array or not array, this is the question
){

    return
        // is not the string '[object Array]' and
        '' + a !== a &&
        // test with Object.prototype.toString     
        {}.toString.call(a) == '[object Array]'
});
            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2011 Alex Kloss <alexthkloss@web.de>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.