javascript - 我试图通过访问嵌套属性并检查它的属性值是否包含特定字符串来过滤数组中的项目

标签 javascript arrays string filter

我正在尝试过滤 arrayobjects通过summary嵌套属性,如果它包含单词 Savesummary支撑值string 。这是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不是一个函数. I'm guessing because 字段 is an对象instead of an数组 so it cannot run the method包括()`。不过,我尝试过这样

const getItemsBySummary = items.filter(item => [item.fields].includes('Save'));

但是我得到一个空数组。我做错了什么?

最佳答案

因为 fields 是一个对象,并且您想根据属性摘要进行过滤,所以您应该使用它:/

const getItemsBySummary = items.filter(item => item.fields.summary.includes('Save'));

关于javascript - 我试图通过访问嵌套属性并检查它的属性值是否包含特定字符串来过滤数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65621889/

相关文章:

javascript - 正则表达式。只获取标签的文本内容(没有内部标签)

javascript - 关闭 jscript for 循环到 switch 语句

javascript - 使用 SignalR、WebApi 和服务

c++ - 在构造函数初始化列表中初始化 std::vector 数组

javascript - 如何用另一个数组的值填充 div 数组?

string - 如何解析/捕获由破折号分隔的字符串?

java - 以逗号分割字符串

javascript - 为 JavaScript 中的文件上传生成 HTTP 多部分正文

c - 将一个字符数组拆分为字符数组数组时,第一个数组始终显示为随机字符

javascript - 用已知位置替换多个字符串