我正在尝试通过summary嵌套属性过滤objects的array,前提是它在summary属性值string中包含单词Save。这是array
const issues = [{
id: '1',
key: 'CLS-1',
fields: {
summary: 'Save princess',
assignee: 'Mario',
}
},
{
id: '2',
key: 'CLS-2',
fields: {
summary: 'Save Mario',
assignee: 'Luigi',
}
},
{
id: '3',
key: 'CLS-3',
fields: {
summary: 'Kidnap princess',
assignee: 'Bowser',
}
},
{
id: '4',
key: 'CLS-3',
fields: {
summary: 'Get kidnap!',
assignee: 'Peach',
}
},
]我已经尝试了这一行:
const getItemsBySummary = items.filter(item => item.fields.includes('Save'));但是我得到了错误消息item.fields.includes is not a function. I'm guessing because fieldsis anobjectinstead of anarrayso it cannot run the methodincludes()`.然而,我试着这样做
const getItemsBySummary = items.filter(item => [item.fields].includes('Save'));但是我得到了一个空数组。我做错了什么?
发布于 2021-01-08 08:38:59
既然字段是一个对象,并且你想要根据属性摘要进行过滤,你应该使用下面的代码:/
const getItemsBySummary = items.filter(item => item.fields.summary.includes('Save'));发布于 2021-01-08 08:40:12
您需要item.fields.summary才能访问必填字段。
const items = [{
id: '1',
key: 'CLS-1',
fields: {
summary: 'Save princess',
assignee: 'Mario',
}
},
{
id: '2',
key: 'CLS-2',
fields: {
summary: 'Save Mario',
assignee: 'Luigi',
}
},
{
id: '3',
key: 'CLS-3',
fields: {
summary: 'Kidnap princess',
assignee: 'Bowser',
}
},
{
id: '4',
key: 'CLS-3',
fields: {
summary: 'Get kidnap!',
assignee: 'Peach',
}
},
]
const res = items.filter(item => item.fields.summary.includes('Save'));
console.log(res);
https://stackoverflow.com/questions/65621889
复制相似问题