javascript - 过滤数组的子数组

标签 javascript arrays multidimensional-array filter

我正在尝试过滤父数组的子数组,但返回的结果为空。我正在尝试找到与 color_family 匹配的内容。

我的数组看起来像:

const arr =[
  {
    "id": 123,
    "acf": {
      "product_colors": [
        {
          "color_family": "grey"
        },
        {
          "color_family": "taupe"
        }
      ]
    }
  },
  {
    "id": 456,
    "acf": {
      "product_colors": [
        {
          "color_family": "red"
        },
        {
          "color_family": "taupe"
        }
      ]
    }
  }
]

我过滤的是

const findColors = ["grey", "taupe"]

我试过没有运气的是

const res = arr.filter(
  x => x.acf.product_colors.find(
    color_family => findColors.includes(color_family)
  )
)

当它应该返回 2 个结果时却没有返回任何结果。有人可以指出我正确的方向吗?

最佳答案

除了拼写错误之外,find 参数的参数是一个具有color_family 的对象:

const res = arr.filter(x => x.acf.product_colors.find(col => {
  return findColors.includes(col.color_family);
}))

关于javascript - 过滤数组的子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072680/

相关文章:

python - 首选排序并将 1D 字节数组转换为 Numpy nd 数组?

javascript - 将 HTML 文本区域值转换为 jqmath 公式

javascript - 将更改文本 onclick 添加到 JavaScript 库

c - 在 C 中创建一个数组来保存字符数组的数组

javascript - 无法从用于创建字符串排列数组的递归函数中返回数组的长度

c++ - 内存中的多维数组结构

java - 多维维恩图

javascript - 我应该如何使用ajax将价格 slider 的值传递给 Controller

php - 我可以通过php执行js文件吗?

java - 如何将大型文本文件的数据排序为多维数组?