2017-09-10 8 views

답변

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을 언급 한 이후

+0

, 환상적인 아름 다운 간단한 –

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>