如何检查数组是否是多维的? (jQuery)
How to check if array is multidimensional? (jQuery)
我有两个 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;
}
您需要检查数组的第一个元素,所以使用
if(arr[0].constructor === Array)
演示版
alert("[[]] returns " + ([[]].constructor === Array))
如果你喜欢我的回答,请为我上面的人投票,但这里是上面的函数格式重构的答案:
function is2dArray(array){
if(array[0] === undefined){
return false;
}else{
return (array[0].constructor === Array);
}
}
if(array[0][0] === undefined){
return true;
}else{
return false;
}
这个检查数组是多数组还是普通数组。
您还可以检查数组中的所有元素,所以我认为在 2019
中这样做会更正确
const is2dArray = array => array.every(item => Array.isArray(item));
除了使用构造函数 属性,您还可以使用 instanceof:
var arr = [];
var obj = {};
(arr instanceof Object)
// -> true
(obj instanceof Object)
// -> true
(arr instanceof Array)
// -> true
(obj instanceof Array)
// -> false
我有两个 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;
}
您需要检查数组的第一个元素,所以使用
if(arr[0].constructor === Array)
演示版
alert("[[]] returns " + ([[]].constructor === Array))
如果你喜欢我的回答,请为我上面的人投票,但这里是上面的函数格式重构的答案:
function is2dArray(array){
if(array[0] === undefined){
return false;
}else{
return (array[0].constructor === Array);
}
}
if(array[0][0] === undefined){
return true;
}else{
return false;
}
这个检查数组是多数组还是普通数组。
您还可以检查数组中的所有元素,所以我认为在 2019
中这样做会更正确const is2dArray = array => array.every(item => Array.isArray(item));
除了使用构造函数 属性,您还可以使用 instanceof:
var arr = [];
var obj = {};
(arr instanceof Object)
// -> true
(obj instanceof Object)
// -> true
(arr instanceof Array)
// -> true
(obj instanceof Array)
// -> false