You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							765 B
						
					
					
				
			
		
		
	
	
							33 lines
						
					
					
						
							765 B
						
					
					
				'use strict';
 | 
						|
 | 
						|
module.exports = arrayDepth;
 | 
						|
 | 
						|
function arrayDepth(arr) {
 | 
						|
  if (!Array.isArray(arr)) {
 | 
						|
    return { min: 0, max: 0, containsNonArrayItem: true };
 | 
						|
  }
 | 
						|
  if (arr.length === 0) {
 | 
						|
    return { min: 1, max: 1, containsNonArrayItem: false };
 | 
						|
  }
 | 
						|
  if (arr.length === 1 && !Array.isArray(arr[0])) {
 | 
						|
    return { min: 1, max: 1, containsNonArrayItem: false };
 | 
						|
  }
 | 
						|
 | 
						|
  const res = arrayDepth(arr[0]);
 | 
						|
 | 
						|
  for (let i = 1; i < arr.length; ++i) {
 | 
						|
    const _res = arrayDepth(arr[i]);
 | 
						|
    if (_res.min < res.min) {
 | 
						|
      res.min = _res.min;
 | 
						|
    }
 | 
						|
    if (_res.max > res.max) {
 | 
						|
      res.max = _res.max;
 | 
						|
    }
 | 
						|
    res.containsNonArrayItem = res.containsNonArrayItem || _res.containsNonArrayItem;
 | 
						|
  }
 | 
						|
 | 
						|
  res.min = res.min + 1;
 | 
						|
  res.max = res.max + 1;
 | 
						|
 | 
						|
  return res;
 | 
						|
} |