객체 배열을 반복하면서 각 고유 값을 얻기 위해 가능한 가장 깨끗하고 es6 네이티브 (가능한 경우) 방법은 무엇입니까? 예이 좋아하는 것 :es6 객체 배열을 반복하고 키 쌍에서 고유 한 값을 집계합니다 (가장 깨끗한 방법)
0
A
답변
1
var objs = [{"name" : "joe"},{"name" : "jean"},{"name" : "joe"},{"name" : "joe"},{"name" : "mike"}];
var uniqueNames = objs.map(obj => obj.name)
.filter((name, idx, arr) => { return arr.indexOf(name) === idx; });
.map
는 이름의 배열을 추출 조, 진, 마이크 (전용 고유 값, 아니 속는) :
[{
"name" : "joe",
},
,{
"name" : "jean",
},
{
"name" : "joe",
},
{
"name" : "joe",
},
{
"name" : "mike",
}]
내 결과에
내가 만보고 싶어 값이되며.filter
은 고유 요소 만 반환합니다 (첫 번째 인스턴스 만). 당신이 ES6을 언급 한 이후
3
, 당신을 위해 고유성 부분을 할 것 등 매우 효율적으로해야하기 때문에 당신이 원하는 일 것 세트 객체처럼 보인다 :
var objs = [{"name" : "joe"},{"name" : "jean"},{"name" : "joe"},{"name" : "joe"},{"name" : "mike"}];
let uniqueNames = Array.from(new Set(objs.map(item => item.name)));
console.log(uniqueNames);
실행 결과를 보려면이 발췌 문장.
2
a = [{name:"joe"},{name:"jean"},{name:"joe"},{name:"joe"},{name:"mike"}]
console.log(_.uniq(_.map(a, 'name'))) // Lodash 0.1.0
console.log([...new Set(a.map(o => o.name))]) // ES6
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>
, 환상적인 아름 다운 간단한 –