如何判断一个Object是一个Array
|
在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? 1.typeof 操作符.对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 Copy to Clipboard 引用的内容:[www.veryhuo.com]
var arr=new Array("1","2","3","4","5"); alert(typeof(arr)); 你会收到一个object 的答案,有点让人失望 . 引用的内容:[www.veryhuo.com]
var arrayStr=new Array("1","2","3","4","5"); alert(arrayStr instanceof Array); 小总结:看样子我们今天讨论的问题已经得到了解答,但事实上在多个frame中穿梭就会产生大问题了. 引用的内容:[www.veryhuo.com]
var iframe = document.createElement('iframe'); document.body.appendChild(iframe); xArray = window.frames[window.frames.length-1].Array; var arr = new xArray("1","2","3","4","5");//这个写法IE大哥下是不支持的,FF下才有 alert(arr instanceof Array); // false alert(arr.constructor === Array); // false 返回结果为两个False,让人大失所望。 引用的内容:[www.veryhuo.com]
function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; } call改变toString的this引用为待检测的对象,返回此对象的字符串表示,然后对比此字符串是否是'[object Array]',以判断其是否是Array的实例。也许你要问了,为什么不直接o.toString()?嗯,虽然Array继承自Object,也会有toString方法,但是这个方法有可能会被改写而达不到我们的要求,而Object.prototype则是老虎的屁股,很少有人敢去碰它的,所以能一定程度保证其“纯洁性”:) 引用的内容:[www.veryhuo.com]
isArray : function(v){ return toString.apply(v) === '[object Array]'; } (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

引用的内容:[www.veryhuo.com]
var arr=new Array("1","2","3","4","5"); 
