You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:从Notion API嵌套数组中筛选name为commissions的属性

如何从Notion API返回的嵌套数组中筛选指定项

你需要从Notion API返回的resultsArray里,筛选出category.multi_select中包含name: "commissions"的项,之前用find没成功是因为没处理好嵌套的数组层级,下面是具体解决方法:

数据结构回顾

const resultsArray = [
  {
    properties: {},
    category: {
      id: "sdasd",
      multi_select: [
        {
          id: "324234",
          name: "commissions"
        }
      ]
    }
  }
];

筛选方法

1. 筛选所有符合条件的项(用filter)

如果需要找出数组中所有满足条件的元素,用filter配合some遍历嵌套数组:

const filteredItems = resultsArray.filter(item => {
  // 先判断必要属性是否存在,避免报错
  if (!item?.properties?.category?.multi_select) return false;
  // 检查multi_select里是否有name为"commissions"的项
  return item.properties.category.multi_select.some(select => select.name === "commissions");
});

2. 只找第一个符合条件的项(用find)

如果只需要第一个匹配的元素,把filter换成find即可:

const foundItem = resultsArray.find(item => {
  if (!item?.properties?.category?.multi_select) return false;
  return item.properties.category.multi_select.some(select => select.name === "commissions");
});

代码说明

  • ?.是可选链操作符,能避免因为某个属性不存在导致的报错
  • some方法会检查嵌套的multi_select数组,只要有一个元素的name匹配目标值,就返回true
  • 外层用filter会返回所有符合条件的数组项,用find只会返回第一个匹配项

内容的提问来源于stack exchange,提问作者Jan Peeter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:51:15