@@ -18,6 +18,7 @@ A heap-based implementation of priority queue in javascript with typescript supp
1818 * [ front] ( #front )
1919 * [ back] ( #back )
2020 * [ dequeue (pop)] ( #dequeue-pop )
21+ * [ remove] ( #remove )
2122 * [ isEmpty] ( #isEmpty )
2223 * [ size] ( #size )
2324 * [ toArray] ( #toarray )
@@ -242,6 +243,17 @@ console.log(bidsQueue.pop()); // { id: 5, value: 12000 }
242243console .log (bidsQueue .pop ()); // { id: 7, value: 8000 }
243244```
244245
246+ ### remove
247+ removes all elements that meet a criteria in O(n* log(n)) runtime and return a list of the removed elements.
248+
249+ ``` js
250+ carsQueue .remove ((car ) => car .price === 35000 ); // [{ year: 2013, price: 35000 }]
251+
252+ numbersQueue .remove ((n ) => n === 4 ); // [4]
253+
254+ bidsQueue .remove ((bid ) => bid .id === 3 ); // [{ id: 3, value: 1000 }]
255+ ```
256+
245257### isEmpty
246258checks if the queue is empty.
247259
@@ -255,9 +267,9 @@ console.log(bidsQueue.isEmpty()); // false
255267returns the number of elements in the queue.
256268
257269``` js
258- console .log (carsQueue .size ()); // 4
259- console .log (numbersQueue .size ()); // 4
260- console .log (bidsQueue .size ()); // 4
270+ console .log (carsQueue .size ()); // 3
271+ console .log (numbersQueue .size ()); // 3
272+ console .log (bidsQueue .size ()); // 3
261273```
262274
263275### toArray
@@ -269,19 +281,17 @@ console.log(carsQueue.toArray());
269281[
270282 { year: 2013, price: 25000 },
271283 { year: 2013, price: 30000 },
272- { year: 2013, price: 35000 },
273284 { year: 2010, price: 2000 }
274285]
275286*/
276287
277- console .log (numbersQueue .toArray ()); // [ 0, 3, 4, 5 ]
288+ console .log (numbersQueue .toArray ()); // [ 0, 3, 5 ]
278289
279290console .log (bidsQueue .toArray ());
280291/*
281292[
282293 { id: 6, value: 4000 },
283294 { id: 4, value: 1500 },
284- { id: 3, value: 1000 },
285295 { id: 1, value: 1000 }
286296]
287297*/
@@ -295,13 +305,12 @@ console.log([...carsQueue]);
295305[
296306 { year: 2013, price: 25000 },
297307 { year: 2013, price: 30000 },
298- { year: 2013, price: 35000 },
299308 { year: 2010, price: 2000 }
300309]
301310*/
302311console .log (carsQueue .size ()); // 0
303312
304- console .log ([... numbersQueue]); // [ 0, 3, 4, 5 ]
313+ console .log ([... numbersQueue]); // [ 0, 3, 5 ]
305314console .log (numbersQueue .size ()); // 0
306315
307316for (const bid of bidsQueue) {
@@ -310,7 +319,6 @@ for (const bid of bidsQueue) {
310319/*
311320{ id: 6, value: 4000 },
312321{ id: 4, value: 1500 },
313- { id: 3, value: 1000 },
314322{ id: 1, value: 1000 }
315323*/
316324console .log (bidsHeap .size ()); // 0
0 commit comments