Filtered array returns as ‘undefined’ in a Leaflet popup

array = [{"shop":"Big Store", "name":"Green Bag"},
         {"shop":"Long Store", "name":"Red Shoes"},
         {"shop":"Big Store", "name":"White Tree"}]

To filter it, I made this function

function filterByShop(array, key, String) {
  return array.filter((obj) => obj[key] == String)
};

If I do alert(JSON.stringify(filterByShop(array, "shop", "Big Store"))), it returns the array minus the Long Store item.

However, if I attach the filtered array to a Leaflet popup via this function, it returns as undefined

function shopsPopup(feature, json){
  json.bindPopup(feature.properties.shop + "</br>" +
                 feature.properties.name + "</br>" +
                 JSON.stringify(filterByShop(array, "shop", feature.properties.shop)))
}

enter image description here