2017-02-10 9 views
-2

オブジェクトの配列をソートする方法はありますか? :キーと値をループしてオブジェクトの配列を分割する

[ RowDataPacket { new_path: '1481640456051.natedogg.jpg' }, 
RowDataPacket { new_path: '1486655771055.natedogg.jpg' }, 
RowDataPacket { tag_id: 170 }, 
RowDataPacket { tag_id: 171 }, 
RowDataPacket { tag_id: 169 }, 
RowDataPacket { tag_id: 172 }, 
RowDataPacket { id: 1, tags: 'myfirstTag' }, 
RowDataPacket { id: 4, tags: 'wrong' }, 
RowDataPacket { id: 31, tags: 'premier' }, 
RowDataPacket { id: 169, tags: 'west' }, 
RowDataPacket { id: 170, tags: 'WOWW' }, 
RowDataPacket { id: 171, tags: 'liopppp' }, 
RowDataPacket { id: 172, tags: 'daftpunk' }, 
RowDataPacket { id: 173, tags: 'dfgdfg' }, 
RowDataPacket { id: 174, tags: 'sport' }, 
RowDataPacket { id: 175, tags: 'hhdhd' }, 
RowDataPacket { id: 176, tags: 'sdfsdfee' } ] 

私は2つのアレイ、最後tag_idまでのすべてと最初の1と内部idtagsで新しい配列を持っていると思います。

私は正しく.mapを使用する方法がわかりません。

+0

この配列は無効です。 –

+0

あなたはどういう意味ですか..もっと説明できますか?あなたの期待は何ですか? – challenger

+0

@challengerすべての要素は、 '{RowDataPacket:{tag_id:170}}'という別のオブジェクトの中に格納するか、これらの 'RowDataPacket'を削除してください。 –

答えて

2

あなたは、配列filterメソッドを使用することができますが、あなたの配列構文を修正する必要があります。

var arr = [ { new_path: '1481640456051.natedogg.jpg' }, 
 
{ new_path: '1486655771055.natedogg.jpg' }, 
 
{ tag_id: 170 }, 
 
{ tag_id: 171 }, 
 
{ tag_id: 169 }, 
 
{ tag_id: 172 }, 
 
{ id: 1, tags: 'myfirstTag' }, 
 
{ id: 4, tags: 'wrong' }, 
 
{ id: 31, tags: 'premier' }, 
 
{ id: 169, tags: 'west' }, 
 
{ id: 170, tags: 'WOWW' }, 
 
{ id: 171, tags: 'liopppp' }, 
 
{ id: 172, tags: 'daftpunk' }, 
 
{ id: 173, tags: 'dfgdfg' }, 
 
{ id: 174, tags: 'sport' }, 
 
{ id: 175, tags: 'hhdhd' }, 
 
{ id: 176, tags: 'sdfsdfee' } ]; 
 

 
var arr1 = arr.filter(function(item) { 
 
\t return item.hasOwnProperty('tag_id'); 
 
}); 
 

 
var arr2 = arr.filter(function(item) { 
 
\t return item.hasOwnProperty('id') && item.hasOwnProperty('tags'); 
 
}); 
 

 
console.log(arr1, arr2)

あなたが、あなたはまた、コードの上に簡素化するために、矢印の機能を使用することができますES2015を使用している場合:

var arr1 = arr.filter((item) => item.hasOwnProperty('tag_id')); 
var arr2 = arr.filter((item) => item.hasOwnProperty('id') && item.hasOwnProperty('tags')); 
+1

'&&'ではありませんか? –

+1

はい、ありがとう@KindUser!修正: –

+0

@ BartekFryzowiczありがとう、それは完璧に動作します! – pkerckho

関連する問題