ugrás a tartalomhoz

Archívum - Jan 3, 2019

Dátum

Rekurzió

mahoo · 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.
function countItems(arr, item) {
  var result = 0;

  (function count(arr, item){
    for (var i=0; i<arr.length; i++){
      if (Array.isArray(arr[i])){
        count(arr[i], item);
      } else if (arr[i] === item) {
        result++;
      }
    }
  })(arr, item);

  return result;
}


var arr = [
	["banana", "strawberry", "apple", ["banana", "strawberry", "apple", ["apple"]], "apple"], 
  "apple",
  ["banana", "strawberry", "apple", ["banana", "strawberry", "apple"]]
];
console.log(countItems(arr, "apple"));
Ami nem tetszik:
- van benne egy 'for'
- biztos van szebb megoldas :)