JavaScript 对象数组,如何筛选出有相同key的对象
问题描述:我有下面这样一个数组, 数组里面每个对象有三个相同的 key :name、age、hair。
let namelist = [{
name: 'mark',
age: 15,
hair: 'long'
}, {
name: 'tuwen',
age: 16,
hair: 'short'
}, {
name: 'xiaoming',
age: 16,
hair: 'short'
}, {
name: 'lilei',
age: 15,
hair: 'short'
}, {
name: 'hanmei',
age: 17,
hair: 'long'
}]
筛选条件:数组中age
相同的对象分到一个数组里。
期望结果:
arr_1 = [{
name: 'mark',
age: 15,
hair: 'long'
}, {
name: 'lilei',
age: 15,
hair: 'short'
}]
arr_2 = [{
name: 'tuwen',
age: 16,
hair: 'short'
}, {
name: 'xiaoming',
age: 16,
hair: 'short'
}]
arr_3 = [{
name: 'hanmei',
age: 17,
hair: 'long'
}]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
我的思路是先使用map得到所有的age
然后去重
然后用filter方法,得到你想要的各个数组集合
声明obj保存对象,遍历,如果已经存在以age为key的项,直接push到数组里,没有则创建数组,再push。
最后的obj是这种形式。调用的话,由于key是number,可以用obj[15]调用。
不好意思,我来晚了,不过我还是提供一种 es6的方式吧,仅供参考