【问题标题】:How to check if array is multidimensional? (jQuery)如何检查数组是否是多维的? (jQuery)
【发布时间】:2015-09-15 06:41:31
【问题描述】:

我有两个 AJAX (JSON) 响应数组:

一维:

[["fili","Chif"],["Bart","deme"],["Bomb","Jyui"],["Joiu","FDPi"],["Doen","abcd"],["drog","MAIC"],["Jasi"
,"abcd"],["Jere","Jibi"]]

三个维度:

[[["5","#"],["2","N"],["L","7"],["C","8"],["F","W"],["K","T"],["Q","E"],["Z","\/"]],[["B","O"],["$","P"
],["1","Y"],["H","R"],["3","%"],["I","U"],["M","4"],["A","9"]],[["J","X"],["Bye","G"],["D","V"],["Bye"
,"6"]]]

我尝试检查一个数组是否是多维的但不起作用:

if (typeof arr[0][0] != "undefined" && arr[0][0].constructor == Array) {
     return true;
} 

【问题讨论】:

标签: jquery arrays ajax multidimensional-array response


【解决方案1】:

你需要检查数组的第一个元素所以使用

if(arr[0].constructor === Array)

演示

alert("[[]] returns " + ([[]].constructor === Array))

【讨论】:

  • 当我更改为 if(arr[0][0].constructor == Array) 时它起作用了!谢谢!
【解决方案2】:

您还可以检查数组中的所有元素,所以我认为这在 2019

中会更正确

const is2dArray = array =>  array.every(item => Array.isArray(item));

【讨论】:

    【解决方案3】:

    如果你喜欢我的答案,请给我上面的人投票,但这里是上面的答案以函数格式重构:

    function is2dArray(array){
        if(array[0] === undefined){
            return false;
        }else{
            return (array[0].constructor === Array);
        }
    }
    

    demo

    【讨论】:

      【解决方案4】:
      if(array[0][0] === undefined){
          return true;
      }else{
          return false;
      }
      

      这个检查数组是多数组还是普通数组。

      【讨论】:

        【解决方案5】:

        除了使用constructor属性,你也可以使用instanceof:

        var arr = [];
        var obj = {};
        
        (arr instanceof Object)
        // -> true
        
        (obj instanceof Object)
        // -> true
        
        (arr instanceof Array)
        // -> true
        
        (obj instanceof Array)
        // -> false
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-26
          • 2010-09-13
          • 1970-01-01
          • 2013-08-26
          • 1970-01-01
          • 2018-01-05
          • 2013-07-07
          相关资源
          最近更新 更多