Ahmad Bamieh (2017-10-27T14:55:36.000Z)
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>
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,