免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4678 | 回复: 2
打印 上一主题 下一主题

[数组]JS版的is_array()[类似PHP得判断是否为数组] [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-29 15:12 |只看该作者 |倒序浏览
[数组]JS版的is_array()[类似PHP得判断是否为数组]


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE> New Document </TITLE>
  5. <META NAME="Author" CONTENT="HonestQiao">
  6. <META NAME="Keywords" CONTENT="Array check">
  7. </HEAD>

  8. <BODY>
  9. <script>
  10. var a=new Array();
  11. alert(is_array(a));

  12. var a=123;
  13. alert(is_array(a));
  14. function is_array(obj)
  15. {
  16.         if (!Array.prototype.push) {
  17.                 Array.prototype.pop=function(){
  18.                         if(this.length!=0)this.length--;
  19.                                 return this;
  20.                         }
  21.         }
  22.         if (!Array.prototype.push) {
  23.           Array.prototype.push = function() {
  24.                   var startLength = this.length;
  25.                   for (var i = 0; i < arguments.length; i++)
  26.                   this[startLength + i] = arguments[i];
  27.                  return this.length;
  28.           }
  29.         }
  30.         try{
  31.                 obj.push(1);
  32.                 obj.pop();
  33.                 return true;
  34.         }
  35.         catch(e)
  36.         {
  37.                 return false;
  38.         }
  39. }
  40. </script>
  41. </BODY>
  42. </HTML>
复制代码

论坛徽章:
0
2 [报告]
发表于 2006-06-29 17:03 |只看该作者
嗯,不错,看来可以给我的Functions.js增加一个条目了,谢谢!:)

论坛徽章:
0
3 [报告]
发表于 2006-07-05 23:08 |只看该作者
用异常来捕捉?不喜欢这么被动,这是我用的:

function is_array(test)
{
        if(typeof test == 'object' && typeof test.sort == 'function' && typeof test.length == 'number')
        {
                return true;
        }
        else
        {
                return false;
        }
}

另外,以下例子可以"欺骗"楼主那个.当然,只要故意,我的也能被"欺骗",因为Array就是Object的扩展,呵呵
var e= {push:function(o){},pop: function(){}};
alert(is_array(e));
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP