2017-09-10 14 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抽出物名の配列の例は、これをしたいと思います値は.filterで、一意の要素のみが返されます(最初のインスタンスのみ)。あなたはES6を述べたので

+0

、幻想的な美しさとシンプルな –

3

、それはあなたのための一意の部分を行いますので、かなり効率的に行う必要がありますので、あなたが望むだろうSetオブジェクトのように思える:

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>

関連する問題