js数组对象集合过滤

数组如下:

var arr = [
    {id: 1, name: 'aa'},
    {id: 2, name: 'bb'}
];

已知aa,如何把aa所在的对象放进新的数组中?
注: 对象中的key都是未知的

阅读 8.1k
4 个回答
arr.filter(v=>Object.values(v).includes('aa'))
let test = []
arr.forEach(elem => {
    Object.values(elem).forEach(value => {
        if (value === 'aa') {
            test.push(elem)
        }
    })
})
//var b = arr.map(v => {
//    if (Object.values(v).includes('aa')) return v
//}).filter(v => v)

蠢了,直接filter就可以。。。参考其他人的吧

不考虑深拷贝

let result = arr.filter(v => v.name === 'aa')

简单深拷贝

let result = []
arr.forEach(v => {
    v.name === 'aa' ? result.push(Object.assign({}, v)) : ''
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题