首页 > 解决方案 > 使用 Swift 过滤嵌套数组

问题描述

我有多种产品的一系列变体。下面显示的数组已删除不必要的信息,但它显示了我需要的数据。每个产品的这些数组可能包含 1 到多个变体。我需要获取变体的 id。假设用户选择黑色和 XL 码。这些选项包含在第一个变体的属性数组中,因此 id 应该是 1023。有没有办法根据选择的属性获取 id?我已经尝试过 .filter 和 .first 在每个变体中使用 for 循环。我无法区分选项 1 和选项 2。我将它们作为选项返回。我也试过 .contains() 但这只是给了我所有的属性。

[
  {
    "id" : 1023,
    "price" : "89.50",
    "stock_quantity" : 7,
    "virtual" : false,
    "attributes" : [
      {
        "id" : 2,
        "option" : "XL",
        "name" : "Size"
      },
      {
        "id" : 1,
        "option" : "Black",
        "name" : "Color"
      }
    ],
    "sale_price" : "",
    "shipping_class_id" : 0
  },
  {
    "id" : 1022,
    "price" : "89.50",
    "stock_quantity" : 7,
    "virtual" : false,
    "date_on_sale_to" : null,
    "attributes" : [
      {
        "id" : 2,
        "option" : "XL",
        "name" : "Size"
      },
      {
        "id" : 1,
        "option" : "Virtual Pink\/Black",
        "name" : "Color"
      }
    ],
    "sale_price" : "",
    "shipping_class_id" : 0
  }
]

标签: arraysswiftmultidimensional-array

解决方案


推荐阅读