1.0 KiB
1.0 KiB
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
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' ]