ugrás a tartalomhoz

Archívum - Jan 3, 2019 - Fórum téma

Rekurzió

mahoo · 2019. Jan. 3. (Cs), 22.45
Lenne egy egyszerű feladat: nested tömbben megszámolni egy adott elem gyakoriságát, rekurzív módon.
Nekem van egy megoldásom, de nem igazán tetszik és érdekelne más megoldás.
  1. function countItems(arr, item) {  
  2.   var result = 0;  
  3.   
  4.   (function count(arr, item){  
  5.     for (var i=0; i<arr.length; i++){  
  6.       if (Array.isArray(arr[i])){  
  7.         count(arr[i], item);  
  8.       } else if (arr[i] === item) {  
  9.         result++;  
  10.       }  
  11.     }  
  12.   })(arr, item);  
  13.   
  14.   return result;  
  15. }  
  16.   
  17.   
  18. var arr = [  
  19.     ["banana""strawberry""apple", ["banana""strawberry""apple", ["apple"]], "apple"],   
  20.   "apple",  
  21.   ["banana""strawberry""apple", ["banana""strawberry""apple"]]  
  22. ];  
  23. console.log(countItems(arr, "apple"));  
Ami nem tetszik:
- van benne egy 'for'
- biztos van szebb megoldas :)