Object.values()를 배열 체인에 주입하는 방법
3876 단어 javascript
패턴에 대한 나의 첫 번째 경험은 jQuery 호출을 연결하는 JavaScript에서였습니다. Underscore가 나왔을 때
chain
기능을 사용하여 더 빠르고 깔끔한 코드를 작성했습니다. 그것을 사랑!ES6+가 얼마나 더 나은지에도 불구하고 여전히 우아하게 해결할 수 없는 한 가지 경우가 있습니다. 즉, 체인에 개체가 있고 일반적으로
reduce
출력이지만 다음과 같이 체인에서 반복하고 싶을 때입니다. 어레이라면.Array에 Lodash
thru
와 같은 메커니즘이 있어 체인에 있는 동안 개체에 대해 작업할 수 있는 기회를 제공하면 좋겠지만 그렇지 않습니다. 예를 들어 다음은 불가능합니다.['foo', 'bar']
.reduce((acc, val) => {
acc[val] = {...};
return acc;
}, {})
.thru(obj => Object.values(obj)) // Chain reduce's output
.sort((a, b) => {...})
그러나
reduce
의 콜백에서 return 문으로 창의력을 발휘하여 비슷한 결과를 얻을 수 있습니다.['foo', 'bar']
.reduce((acc, val, i, arr) => {
acc[val] = {...};
// On the last iteration return something chainable
return i === arr.length - 1 ? Object.values(acc) : acc;
}, {})
.sort((a, b) => {...})
이 패턴을 사용하면 일반적으로 별도로 수행하고 다시 패치해야 하는 체인에서 더 많은 작업을 수행할 수 있습니다.
개체를 연결 가능하게 만드는 다른 접근 방식을 알고 있습니까?
Reference
이 문제에 관하여(Object.values()를 배열 체인에 주입하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jfbrennan/how-to-inject-object-values-into-an-array-chain-18j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)