找到匹配的Ids javascript的所有对象

时间:2016-06-16 15:49:05

标签: javascript arrays lodash

我正在尝试从学生数组中获取所有具有匹配id的对象,并从中获取其他属性值...

例如我的数组看起来像这样:

const students = [
    {id: 1, name: 'Cal', location: 'McHale' },
    {id: 2, name: 'Courtney', location: 'Sydney Hall' }, 
    {id: 1, name: 'Cal', location: 'Syndey hall' }
]

所以我的预期输出会获取所有id:1的实例。

{id: 1, name: 'Cal', location: 'McHale' },
{id: 1, name: 'Cal', location: 'Syndey hall' }

我最终想要删除重复的名称,并在列表中显示如此...(但这就行了。现在我只想抓取匹配的对象)。

Id: 1    Name: Cal    Location: McHale
                                Syndey Hall

我试过了:

const result = _.find(students, {student_id: studentId});

但这似乎不起作用,它只返回一个具有该ID的对象。

{id: 1, name: 'Cal', location: 'McHale' },

我该如何做到这一点?

3 个答案:

答案 0 :(得分:3)

我会调查filter函数。它构建了JavaScript。

这是一个如何运作的例子。您需要做的就是找到一种方法来创建一个能够判断它是否具有正确ID的函数。

Write([]byte) (int, error)

答案 1 :(得分:2)

如果您看到_.find的文档,则说明

  

迭代集合的元素,返回第一个元素谓词返回truthy for。

您应该将_.filter方法用于您想要的内容

  

迭代集合的元素,返回所有元素的数组谓词返回的真实。

这样的东西
const result = _.filter(students, {student_id: studentId});

答案 2 :(得分:1)

const result = students.filter(e => e.id === 1);