.reduce()를 사용하는 JavaScript의 Pluck 함수
6726 단어 javascript
const pluck = (list, key) =>
list.reduce((pV, cV) => (key in cV ? [...pV, cV[key]] : [...pV]), []);
용법
뽑아낼 객체의 배열(
list
)과 속성 이름( key
)을 제공하면 함수가 list[n*][key]
에서 찾은 모든 값의 목록을 반환합니다.// Sample data
const movies = [
{
title: "Invasion of the Body Snatchers",
releaseDate: 1978,
mpar: "R",
rating: 5,
comments: "This is my favorite!",
},
{
title: "Invasion of the Body Snatchers",
releaseDate: 1956,
comments:
"This a good film, but doesn't have Jeff Goldblum, Leonard Nimoy, or even Donald Sutherland in it.",
},
{
title: "The Invasion",
releaseDate: 2007,
rating: 3,
comments: "Not my favorite, but it was watchable.",
},
{
title: "Attack the Block",
releaseDate: 2010,
rating: 4.5,
comments: "A fun movie, innit.",
},
{
title: "Ubik",
comments: "It's just as well; they probably would have ruined it anyway.",
mpar: null,
},
];
title
에서 모든 movies
값을 뽑습니다 ...console.log(pluck(movies, "title"));
[
'Invasion of the Body Snatchers',
'Invasion of the Body Snatchers',
'The Invasion',
'Attack the Block',
'Ubik'
]
mpar
에서 모든 movies
(Motion Picture Association 등급)을 뽑습니다.console.log(pluck(movies, "mpar"));
[ 'R', null ]
값이
pluck()
인 경우에도 (key in cV)
는 명시적으로 키를 확인하고 가리키는 값을 반환하기 때문에 undefined
는 거짓 값에 속지 않습니다! 나는 이것이 일반적으로 유지하기 위해 pluck()
에서 원하는 것이라고 생각합니다. 두 번째 패스에서 undefined
또는 false
와 같은 원하지 않는 값을 정리하거나 (key in cV)
이후에 필터링 콜백을 허용하도록 확장할 수 있지만, 저는 바보이므로 간단하게 유지합니다.
Reference
이 문제에 관하여(.reduce()를 사용하는 JavaScript의 Pluck 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/365erik/pluck-func-in-javascript-with-reduce-2od5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)