zoukankan      html  css  js  c++  java
  • 判断数组类型

    Douglas Crockford 推荐用鸭子类型 也就是不关注对象是什么。而是关注对象能做什么事情。 

    //鸭式辨型
    Function isArray(value){
       return typeof value.sort() === 'function';  
     }

    这种检测依赖一个事实,即数组数据哦唯一包含sort()方法的对象。问题是如果传入的value是一个包含sort()的对象那么就有问题了。

    所以Juriy Zaytsev给出了一种优雅的解决方案

    function isArray(value){
      return Object.prototype.toString.call(value) === '[object Array]';
    }

    我的理解是Object上的toString会返回该对象的字符串。但是不能用于自定义对象。

    在ES5中引入了一个新方法 即Array.isArray();

    那么最终的代码是

    function isArray(value){
      if(typeof Array.isArray() === 'function ' ){
         return Array.isArray(value);
      }else{
         return Object.prototype.toString.call(value) === '[object Array]';
      }
    }

    END

  • 相关阅读:
    lists 函数整理
    orddict 练习
    github 的使用
    wxListCtrl 例子 二
    Erlang eunit
    Erlang 中 Tuple 使用 以及 List 模块意外
    Erlang Json
    模块和包
    Mysql作为zabbix数据库ibdata1文件太高解决
    用户管理和数据库安全
  • 原文地址:https://www.cnblogs.com/web-alibaba/p/4812375.html
Copyright © 2011-2022 走看看