diff --git a/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/README.md b/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/README.md new file mode 100644 index 0000000000..86c8dd2209 --- /dev/null +++ b/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/README.md @@ -0,0 +1,9 @@ +## `filter()` Method + +The `filter()` method creates a **new array** with all elements that pass the condition implemented by the provided function. + +### Syntax + +array.filter((element, index, array) { + // return true to keep the element, false otherwise +}); diff --git a/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/filter.js b/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/filter.js new file mode 100644 index 0000000000..22a978e0aa --- /dev/null +++ b/Modern Development/ECMASCript 2021/Server-side ECMAScript 2021 examples/filter/filter.js @@ -0,0 +1,40 @@ +// How many times have we written long for-loops just to filter data manually? +// The filter() method makes it so much simpler — one clean line to get exactly what you need! +// Let’s see how we used to do it vs. how clean it can be now. + +//before +(function executeRule(current, previous /*null when async*/) { + + var incidents = [ + { number: 'INC001', state: 'In Progress' }, + { number: 'INC002', state: 'Resolved' }, + { number: 'INC003', state: 'New' }, + { number: 'INC004', state: 'In Progress' } + ]; + + var inProgress = []; + for (var i = 0; i < incidents.length; i++) { + if (incidents[i].state === 'In Progress') { + inProgress.push(incidents[i]); + } + } + + gs.info('In Progress Incidents: ' + JSON.stringify(inProgress)); + +})(current, previous); + +//after +(function executeRule(current, previous /*null when async*/) { + + var incidents = [ + { number: 'INC001', state: 'In Progress' }, + { number: 'INC002', state: 'Resolved' }, + { number: 'INC003', state: 'New' }, + { number: 'INC004', state: 'In Progress' } + ]; + + var inProgress = incidents.filter(inc => inc.state === 'In Progress'); + + gs.info('In Progress Incidents: ' + JSON.stringify(inProgress)); + +})(current, previous);