Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Array.filter vs for/of
(version: 0)
Comparing performance of:
for/of vs Array.filter()
Created:
3 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
const getQueueName = (queue) => { return queue.name; } const targetQueue = "queue_9"; const targetAction = "create ticket"; data = [{ "name": "rule_0", "action": "create ticket", "queue": { "id": "0", "name": "queue_0" } }, { "name": "rule_1", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_2", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_3", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_4", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_5", "action": "assign ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_6", "action": "create ticket", "queue": { "id": "6", "name": "queue_6" } }, { "name": "rule_7", "action": "assign ticket", "queue": { "id": "7", "name": "queue_7" } }, { "name": "rule_8", "action": "create ticket", "queue": { "id": "8", "name": "queue_8" } }, { "name": "rule_9", "action": "assign ticket", "queue": { "id": "9", "name": "queue_9" } }, { "name": "rule_10", "action": "create ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_11", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_12", "action": "create ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_13", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_14", "action": "create ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_15", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_16", "action": "create ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_17", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_18", "action": "create ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_19", "action": "assign ticket", "queue": { "id": "1", "name": "queue_1" } }, { "name": "rule_20", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_21", "action": "assign ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_22", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_23", "action": "assign ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_24", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_25", "action": "assign ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_26", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_27", "action": "assign ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_28", "action": "create ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_29", "action": "assign ticket", "queue": { "id": "2", "name": "queue_2" } }, { "name": "rule_30", "action": "create ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_31", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_32", "action": "create ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_33", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_34", "action": "create ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_35", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_36", "action": "create ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_37", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_38", "action": "create ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_39", "action": "assign ticket", "queue": { "id": "3", "name": "queue_3" } }, { "name": "rule_40", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_41", "action": "assign ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_42", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_43", "action": "assign ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_44", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_45", "action": "assign ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_46", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_47", "action": "assign ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_48", "action": "create ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_49", "action": "assign ticket", "queue": { "id": "4", "name": "queue_4" } }, { "name": "rule_50", "action": "create ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_51", "action": "assign ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_52", "action": "create ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_53", "action": "assign ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_54", "action": "create ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_55", "action": "assign ticket", "queue": { "id": "5", "name": "queue_5" } }, { "name": "rule_56", "action": "create ticket", "queue": { "id": "5", "name": "queue_5" } }]
Tests:
for/of
const filterTest1 = (data) => { const matchingRules = []; for (const rule of data) { if (rule.action === targetAction && rule.queue && getQueueName(rule.queue) === targetQueue) { matchingRules.push(rule); } } return matchingRules; }
Array.filter()
const filterTest2 = (data) => { return data.filter( (rule) => ( rule.action === targetAction && rule.queue && getQueueName(rule.queue) === targetQueue ) ); }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
for/of
Array.filter()
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
It appears that we have a large JSON payload containing multiple rules, each with an action and a queue ID. The task is to filter this data based on the `action` and `queue` properties. We also have two benchmark tests: "for/of" and "Array.filter()". We need to determine which of these two approaches is faster for filtering the data. Let's analyze the data: * There are 7 rules in total. * The first rule has an `id` of 4, matching `targetAction` and `targetQueue`. * Rules 47-55 have an `action` of "assign ticket" or "create ticket", but only rule 48 has both a matching `action` and a different `queue` ID (5). * Rules 49-54 have the same `action` as rule 47, but with a different `queue` ID (4). Based on this analysis, we can conclude that: * The "for/of" loop will iterate over all rules in the data set, which may lead to slower performance due to the overhead of the loop. * The `Array.filter()` approach will only consider rules that match both `action` and `queue`, which is likely to be faster since it stops iterating as soon as a non-matching rule is found. Therefore, the expected benchmark result is: "Array.filter()" "for/of" With the following times: "Array.filter()": 927910208.0 "for/of": 921128192.0
Related benchmarks:
stateForId
nested Array.filter Array.some vs filtering a set
for loop filter vs native array.filter
Set vs Filter vs forEach vs forLoop vs filterWithSet vs map for unique
Lodash vs native (filter)
Comments
Confirm delete:
Do you really want to delete benchmark?