Each review will need to have a unique ID, and that ID column must be the key column for the table containing the reviews. The review ID and the location ID must not be the same.
If you have a separate table for locations, you can add a virtual column to that table that will keep track of the latest review for each location, using an App formula expression like this:
([_THISROW] = [Location])
Reviews with the name of the table containing the reviews,
Location with the name of the column in the
Reviews table that identifies the location being reviewed, and
Review Added with the name of the column in the
Reviews table that records the date (& hopefully time) the review was originally added. All together,
ANY(ORDERBY(FILTER(...))) gets the latest review ow for the location.
Then, create a slice atop the reviews table. For the slice row filter expression:
([_THISROW] = [Location].[Latest Review])
Location as in the
ANY(ORDERBY(FILTER(...))) expression above, and
Latest Review with the name of the virtual column added above. This expression will ensure the slice only includes the reviews that are the latest for their respective locations.
Finally, attach the slice to a view to present to the user.