我只是想知道是否有人知道一个简单的函数来检查给定数组是否是多维的,如果可能的话,还要看看它有多少维。
这是一个示例数组:
{"name":"Tiradentes","id":"234534gfgdgd4y5hy","areas":{{"name":"Apucarana", "id":"fh4oth98f894nf89h4"},{etc..., etc....}}}
最佳答案
相当(我想)简单的函数计算数组和类数组对象中的维度(就像你的情况):
function countDimensions(arr)
{
if (! (arr && typeof arr === 'object') ) {
return 0;
}
var maxCount = Math.max.apply(null, $.map(arr, function(n) {
return countDimensions(n);
}));
return 1 + (isFinite(maxCount) ? maxCount : 0);
}
使用了 jQuery,因为 0) 在标签中提到了它,1) 使用 instanceof Array
天真地检查数组可能会导致多帧应用程序出现棘手的结果,2) $.map
是一种方便的快捷方式,用于移动所有数组 值。
当然,它可以用纯 JS 重写,但不会那么紧凑。 )
必须使用 isFinite
检查,因为 protomax
-ing 空数组给出 -Infinite
。
关于javascript - jQuery:检查数组是否为多维的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422053/