ahmadbamieh at gmail.com (2017-10-27T15:01:50.565Z)
Hello,
This method maps over an array of items that meet a certain condition,
otherwise just pass the item as is. It is a nice feature to have along with
map, filter, and other functional methods on the array prototype.
## Description
Map over an array of items:
- If the item meets the condition, apply the callback
- If the item does not meet the condition return the item without any transformation.
## Example
```js
const exampleArray = [1, 2, 9, "C", "B", "C"];
exampleArray.mapOn(Math.sqrt, Number.isInteger); // [1, 1.414, 3, "A", "B", "C"];
```
## Parameters
- callback
Function that produces an element of the new Array, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- condition
Function perdicate, if returned value is truthy, the callback is applied, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- thisArg
Optional. Value to use as this when executing callback.
## Return value
A new array with each element being the result of the callback function if it meets the condition, otherwise the same item is returned.
## Code/Polyfill
```js
Array.prototype.mapOn = function(callback, condition, thisArg=this) {
return this.map((currentValue, index, array) => {
if(condition(currentValue, index, array)) {
return callback.call(thisArg, currentValue, index, array)
}
return currentValue
})
}
```
## Link to Gist
https://gist.github.com/Bamieh/9fccbf4bc394d0da2fd0c8bb5d314476
Cheers!
Ahmad Bamieh,ahmadbamieh at gmail.com (2017-10-27T15:00:19.928Z)
Hello,
This method maps over an array of items that meet a certain condition,
otherwise just pass the item as is. It is a nice feature to have along with
map, filter, and other functional methods on the array prototype.
## Description
Map over an array of items:
- If the item meets the condition, apply the callback
- If the item does not meet the condition return the item without any transformation.
## Example
```js
const exampleArray = [1, 2, 9, "C", "B", "C"];
exampleArray.mapOn(Math.sqrt, Number.isInteger); // [1, 1.414, 3, "A", "B", "C"];
```
## Parameters
- callback
Function that produces an element of the new Array, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- condition
Function perdicate, if returned value is truthy, the callback is applied, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- thisArg
Optional. Value to use as this when executing callback.
## Return value
A new array with each element being the result of the callback function if it meets the condition, otherwise the same item is returned.
```js
Array.prototype.mapOn = function(callback, condition, thisArg=this) {
return this.map((currentValue, index, array) => {
if(condition(currentValue, index, array)) {
return callback.call(thisArg, currentValue, index, array)
}
return currentValue
})
}
```
*Link to Gist*
https://gist.github.com/Bamieh/9fccbf4bc394d0da2fd0c8bb5d314476
Cheers!
Ahmad Bamieh,ahmadbamieh at gmail.com (2017-10-27T15:00:09.874Z)
Hello,
This method maps over an array of items that meet a certain condition,
otherwise just pass the item as is. It is a nice feature to have along with
map, filter, and other functional methods on the array prototype.
/*
## Description
Map over an array of items:
- If the item meets the condition, apply the callback
- If the item does not meet the condition return the item without any transformation.
## Example
```js
const exampleArray = [1, 2, 9, "C", "B", "C"];
exampleArray.mapOn(Math.sqrt, Number.isInteger); // [1, 1.414, 3, "A", "B", "C"];
```
## Parameters
- callback
Function that produces an element of the new Array, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- condition
Function perdicate, if returned value is truthy, the callback is applied, taking three arguments:
- currentValue
The current element being processed in the array.
- index
The index of the current element being processed in the array.
- array
The array map was called upon.
- thisArg
Optional. Value to use as this when executing callback.
## Return value
A new array with each element being the result of the callback function if it meets the condition, otherwise the same item is returned.
```js
Array.prototype.mapOn = function(callback, condition, thisArg=this) {
return this.map((currentValue, index, array) => {
if(condition(currentValue, index, array)) {
return callback.call(thisArg, currentValue, index, array)
}
return currentValue
})
}
```
*Link to Gist*
https://gist.github.com/Bamieh/9fccbf4bc394d0da2fd0c8bb5d314476
Cheers!
Ahmad Bamieh,
Hello, This method maps over an array of items that meet a certain condition, otherwise just pass the item as is. It is a nice feature to have along with map, filter, and other functional methods on the array prototype. *Description* Map over an array of items: - If the item meets the condition, apply the callback - If the item does not meet the condition return the item without any transformation. *Example* ``` const exampleArray = [1, 2, 9, "C", "B", "C"]; exampleArray.mapOn(Math.sqrt, Number.isInteger); // [1, 1.414, 3, "A", "B", "C"]; ``` *Parameters* *- callback* Function that produces an element of the new Array, taking three arguments: * - currentValue* The current element being processed in the array. * - index* The index of the current element being processed in the array. * - array* The array map was called upon. *- condition* Function perdicate, if returned value is truthy, the callback is applied, taking three arguments: * - currentValue* The current element being processed in the array. * - index* The index of the current element being processed in the array. * - array* The array map was called upon. *- thisArg* Optional. Value to use as this when executing callback. *Return value* A new array with each element being the result of the callback function if it meets the condition, otherwise the same item is returned. *Code / Polyfill * Array.prototype.mapOn = function(callback, condition, thisArg=this) { return this.map((currentValue, index, array) => { if(condition(currentValue, index, array)) { return callback.call(thisArg, currentValue, index, array) } return currentValue }) } *Link to Gist* https://gist.github.com/Bamieh/9fccbf4bc394d0da2fd0c8bb5d314476 Cheers! Ahmad Bamieh, -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20171027/16242784/attachment-0001.html>