如何检查数组是否是多维的? (jQuery的)

时间:2015-06-28 21:20:54

标签: jquery arrays ajax multidimensional-array response

我有两个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;
} 

5 个答案:

答案 0 :(得分:12)

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

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

<强>样本

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

答案 1 :(得分:2)

如果您喜欢我的回答,请投票给我上面的人,但这里是以功能格式重建的上述答案:

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

demo

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

if(array[0][0] === undefined){
    return true;
}else{
    return false;
}

这将检查Array是一个多重数组还是一个普通数组。

答案 4 :(得分:0)

除了使用constructor属性,您还可以使用instanceof:

var arr = [];
var obj = {};

(arr instanceof Object)
// -> true

(obj instanceof Object)
// -> true

(arr instanceof Array)
// -> true

(obj instanceof Array)
// -> false