繁体   English   中英

通过循环键和值来拆分对象数组

[英]Split array of object by looping on keys and values

有没有办法对这个对象数组进行排序?

[ 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之前的所有内容,一个包含内部idtags的新数组。

我不知道如何正确使用 .map。

您可以使用数组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'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM