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