function,

pull

FreeVue FreeVue Follow Mar 21, 2019 · 1 min read
pull
Share this

pull. 원래의 배열을 변경하여 지정된 값을 필터링합니다.

Array.filter() 및 Array.include()를 사용하여 필요하지 않은 값을 추출합니다. Array.length = 0을 사용하면 길이를 0으로 재설정하고 Array.push()를 사용하여 전달 된 값을 변경하여 끌어온 값만 다시 채웁니다.

_ (원래 배열을 변경하지 않는 스니펫의 경우 없음 참조) _

const pull = (arr, ...args) => {
  let argState = Array.isArray(args[0]) ? args[0] : args
  let pulled = arr.filter((v, i) => !argState.includes(v))
  arr.length = 0
  pulled.forEach((v) => arr.push(v))
}

// 예시
let myArray = ['a', 'b', 'c', 'a', 'b', ' c']
pull(myArray, 'a', 'c') // myArray = ['b', 'b']

[출처: http://30.surge.sh/]