【问题标题】:filter and indexOf methods to create a filtered array [duplicate]filter 和 indexOf 方法来创建过滤数组
【发布时间】:2020-12-11 18:16:50
【问题描述】:

我正在尝试制作经过过滤的对象数组。这是原始数组:

const data = [{
        "id": "80009841-C",
        "name": "Giorgio Armani Code Homme Profumo Parfum",
        "slug": "parfum/giorgio-armani/code-homme/giorgio-armani-code-homme-profumo-parfum.html",
        "brand": "Giorgio Armani",
        "type": "Parfum",
    },
  
    {
        "id": "80022496-C",
        "name": "Issey Miyake L'Eau Majeure D'Issey Eau de Toilette",
        "slug": "parfum/issey-miyake/l-eau-majeure-d-issey/issey-miyake-l-eau-majeure-d-issey-eau-de-toilette.html",
        "brand": "Issey Miyake",
        "type": "Eau de Parfum",
    }
  ]

我想按类型过滤,使用我找到的这段代码:

data.filter((product) => product.type.indexOf("Parfum") >= 0)

但我没有得到我想要的,该函数返回一个包含两个对象的数组,因为它们的“类型”值中都有“Parfum”这个词。

问题如何获得与我要过滤的值完全匹配的值?

【问题讨论】:

  • 使用=== 代替indexOf?

标签: javascript methods filtering


【解决方案1】:

如果您想要完全匹配,那么只需执行以下操作:

data.filter((product) => product.type === "Parfum");

【讨论】:

    【解决方案2】:

    const data = [{
          "id": "80009841-C",
          "name": "Giorgio Armani Code Homme Profumo Parfum",
          "slug": "parfum/giorgio-armani/code-homme/giorgio-armani-code-homme-profumo-parfum.html",
          "brand": "Giorgio Armani",
          "type": "Parfum",
      },
      {
          "id": "80022496-C",
          "name": "Issey Miyake L'Eau Majeure D'Issey Eau de Toilette",
          "slug": "parfum/issey-miyake/l-eau-majeure-d-issey/issey-miyake-l-eau-majeure-d-issey-eau-de-toilette.html",
          "brand": "Issey Miyake",
          "type": "Eau de Parfum",
      }
    ];
    
    const filtered = data.filter(item => item.type == "Parfum");
    
    console.log(filtered);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 2021-07-19
      • 2020-11-01
      • 1970-01-01
      相关资源
      最近更新 更多