From ea867bcd2977542e6a1f1ce2238d09d0f7315172 Mon Sep 17 00:00:00 2001 From: King Date: Tue, 19 Dec 2017 01:06:29 -0500 Subject: [PATCH 1/3] add pullAtValue.md --- snippets/pullAtValue.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 snippets/pullAtValue.md diff --git a/snippets/pullAtValue.md b/snippets/pullAtValue.md new file mode 100644 index 000000000..e7b3fd44e --- /dev/null +++ b/snippets/pullAtValue.md @@ -0,0 +1,27 @@ +### pullAtValue + +This method is like pull except that it accepts an array of values to filter out before Mutating and pulling all the values from the original array. Which then returns an array of removed elements. + +Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed. +Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values. +Use `Array.push()` to keep track of pulled values + +```js +const pullAtValue = (arr, pullArr) => { + let removed = []; + let pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v) + let mutateTo = arr.filter((v, i) => !pullArr.includes(v)) + arr.length = 0; + mutateTo.forEach(v => arr.push(v)); + return removed; +} + +let myArray = ['a', 'b', 'c', 'd']; +let pulled = pullAtValue(myArray, ['b', 'd']); + +// let myArray = ['a', 'b', 'c', 'd']; +// let pulled = pullAtValue(myArray, ['b', 'd']); + +// console.log(myArray); -> [ 'a', 'c' ] +// console.log(pulled); -> [ 'b', 'd' ] +``` \ No newline at end of file From c2e339760caa961e34a23216abf383a39a75fc47 Mon Sep 17 00:00:00 2001 From: King Date: Tue, 19 Dec 2017 01:08:11 -0500 Subject: [PATCH 2/3] ran npm run tagger & update tag_database with pullAtValue:array --- tag_database | 1 + 1 file changed, 1 insertion(+) diff --git a/tag_database b/tag_database index f48f069b3..1214acfde 100644 --- a/tag_database +++ b/tag_database @@ -71,6 +71,7 @@ pipe:function powerset:math promisify:function pull:array +pullAtValue:array randomIntegerInRange:math randomNumberInRange:math readFileLines:node From 564798291582f9d9075f46d26ba38a29b57cd89e Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Tue, 19 Dec 2017 16:38:57 +0200 Subject: [PATCH 3/3] Update pullAtValue.md --- snippets/pullAtValue.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/snippets/pullAtValue.md b/snippets/pullAtValue.md index e7b3fd44e..64798068f 100644 --- a/snippets/pullAtValue.md +++ b/snippets/pullAtValue.md @@ -1,6 +1,6 @@ ### pullAtValue -This method is like pull except that it accepts an array of values to filter out before Mutating and pulling all the values from the original array. Which then returns an array of removed elements. +Mutates the original array to filter out the values specified. Returns the removed elements. Use `Array.filter()` and `Array.includes()` to pull out the values that are not needed. Use `Array.length = 0` to mutate the passed in array by resetting it's length to zero and `Array.push()` to re-populate it with only the pulled values. @@ -8,20 +8,17 @@ Use `Array.push()` to keep track of pulled values ```js const pullAtValue = (arr, pullArr) => { - let removed = []; - let pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v) - let mutateTo = arr.filter((v, i) => !pullArr.includes(v)) + let removed = [], + pushToRemove = arr.forEach((v, i) => pullArr.includes(v) ? removed.push(v) : v), + mutateTo = arr.filter((v, i) => !pullArr.includes(v)); arr.length = 0; mutateTo.forEach(v => arr.push(v)); return removed; } - +/* let myArray = ['a', 'b', 'c', 'd']; let pulled = pullAtValue(myArray, ['b', 'd']); - -// let myArray = ['a', 'b', 'c', 'd']; -// let pulled = pullAtValue(myArray, ['b', 'd']); - -// console.log(myArray); -> [ 'a', 'c' ] -// console.log(pulled); -> [ 'b', 'd' ] -``` \ No newline at end of file +console.log(myArray); -> [ 'a', 'c' ] +console.log(pulled); -> [ 'b', 'd' ] +*/ +```