有没有办法对这个对象数组进行排序? :
[ 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' } ]
我希望有两个数组,第一个包含所有内容,直到最后一个tag_id
和一个包含内部id
和tags
的新数组。
我不知道如何正确使用.map。
答案 0 :(得分: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) {
return item.hasOwnProperty('tag_id');
});
var arr2 = arr.filter(function(item) {
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'));