arrayDepth.js 505 B

12345678910111213141516171819202122232425262728
  1. 'use strict';
  2. module.exports = arrayDepth;
  3. function arrayDepth(arr) {
  4. if (!Array.isArray(arr)) {
  5. return { min: 0, max: 0 };
  6. }
  7. if (arr.length === 0) {
  8. return { min: 1, max: 1 };
  9. }
  10. const res = arrayDepth(arr[0]);
  11. for (let i = 1; i < arr.length; ++i) {
  12. const _res = arrayDepth(arr[i]);
  13. if (_res.min < res.min) {
  14. res.min = _res.min;
  15. }
  16. if (_res.max > res.max) {
  17. res.max = _res.max;
  18. }
  19. }
  20. res.min = res.min + 1;
  21. res.max = res.max + 1;
  22. return res;
  23. }