javascript - 从 Array.map() 中排除项目

标签 javascript arrays

我试图排除 packageData.type 中包含 Packages 的项目。仅显示包含 packageData.type 项目的 packageData 作为 Add-on

数组为例

{
  "packageData": [
    {
      "title": "Title 1",
      "type": [
        "Packages"
      ]
    },
    {
      "title": "Title 2",
      "type": [
        "Add-on"
      ]
    },
    {
      "title": "Title 3",
      "type": [
        "Add-on"
      ]
    },
    {
      "title": "Title 4",
      "type": [
        "Add-on"
      ]
    }
  ]
}

这就是我目前尝试删除结果为零的方式。

<ul>
  {packageData.map(function() {
    if (packageData.type ==! "Packages") {
     return (
      <li key={packageData.id}>
        <a>
          <img src={packageData.heroImage.sizes.src} alt=""/>
          <h3>{packageData.title}</h3>
        </a>
      </li> );
    } else {
      return null;
    };
  })}
</ul>

我怎样才能使这项工作?或者我应该在显示之前过滤这些结果,然后映射返回的项目吗?

最佳答案

你必须在map之前使用filter,Filter会过滤数组,然后map会遍历数组。下面是示例代码

var data = {
  "packageData": [
    {
      "title": "Title 1",
      "type": [
        "Packages"
      ]
    },
    {
      "title": "Title 2",
      "type": [
        "Add-on"
      ]
    },
    {
      "title": "Title 3",
      "type": [
        "Add-on"
      ]
    },
    {
      "title": "Title 4",
      "type": [
        "Add-on"
      ]
    }
  ]
};

data.packageData.filter((item) => { return item.type[0] !== 'Packages' }).map((item)=> { console.log(item); });

关于javascript - 从 Array.map() 中排除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943047/

相关文章:

javascript - SharePoint 2013 onclick 未触发 - 而是加载 #

javascript - 如何在jquery的输入字段中用空格键逐一显示数组元素?

ios - 遍历数组并从 JSON 文件中提取数据

arrays - 如何高效地检查数组是否包含 brightscript 中的值?

arrays - 在 Spark Scala Dataframe 中迭代具有动态大小的数组列

arrays - 如何将 nil 添加到数组中?

python - 无需重新排列内存的 3×n 数组的紧凑规范

javascript - 将数组解密为字符串

javascript - 如何在 Angular 中为我的页面上具有特定值或属性的 div 的数量返回一个计数?

javascript - 从 javascript 对象构造层次结构对象