Given a multidimensional array like this:
var arr = [
\"apple\",
[\"banana\", \"strawberry\",\"dsffsd\", \"apple\"],
\"banana\",
[\"sdfdsf\",\"apple\",[\"apple\
You could iterate the flat version of arr using arr.toString().split(",") so you don't need recursion.
var arr = [
"apple",
["banana", "strawberry","dsffsd", "apple"],
"banana",
["sdfdsf","apple",["apple",["nonapple", "apple",["apple"]]]]
,"apple"];
var counts = {};
arr.toString().split(",").forEach(e=>{
counts[e] = (counts[e] || 0) +1
})
console.log(counts.apple)
Doesn't work if elements have "," inside, but works with.flat() instead of .toString().split(",")