Filter Restaurants by Vegan-Friendly, Price and Distance LeetCode solution in JavaScript

1
var filterRestaurants = function (
2
restaurants,
3
veganFriendly,
4
maxPrice,
5
maxDistance
6
) {
7
let result = [];
8
// veganFriendly filter
9
if (veganFriendly === 1) {
10
restaurants = restaurants.filter((restaurant) => restaurant[2] === 1);
11
}
12

13
//max price
14
restaurants = restaurants.filter((restaurant) => restaurant[3] <= maxPrice);
15

16
// max distance
17
restaurants = restaurants.filter(
18
(restaurant) => restaurant[4] <= maxDistance
19
);
20

21
restaurants.sort((a, b) => b[1] - a[1]);
22

23
let tempArr = [];
24
for (let i = 0; i < restaurants.length; i++) {
25
if (restaurants[i + 1] && restaurants[i][1] === restaurants[i + 1][1]) {
26
tempArr.push(restaurants[i][0]);
27
tempArr.push(restaurants[i + 1][0]);
28
i++;
29
} else {
30
if (tempArr.length > 0) {
31
tempArr.sort((a, b) => b - a);
32
result = [...result, ...tempArr];
33
tempArr = [];
34
}
35
result.push(restaurants[i][0]);
36
}
37
}
38

39
return result;
40
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0