首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用条件语句过滤对象数组

用条件语句过滤对象数组
EN

Stack Overflow用户
提问于 2021-05-18 16:11:51
回答 2查看 412关注 0票数 0

我有具有以下结构的JavaScript对象数组:

const果树={ "id":"1","title":"Banana","description":"1分钟“},{ "id":"2",“标题”:“苹果”,“描述”:“2-3天”},{ "id":"3",“标题”:"Manggo",“描述”:“10-20天”},{ "id":"4",“标题”:“橙”,“描述”:“10-20天”},{ "id":"5",“标题”:“葡萄蓝”,“描述”:“10-20天”},{ "id":"6",“标题”:“葡萄红”,“描述”:“10-20天”}

我想提取具有description =“10-20天”和title 不包含“葡萄”的对象。

那么我的期望应该是

{ "id": "3", "title": "Manggo", "description": "10 - 20 Days" }, { "id": "4", "title": "Orange", "description": "10 - 20 Days" }

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 16:18:08

通过使用Array.protoype.filter很容易做到这一点。在filter回调中,可以使用String.protoype.includes方法检查标题是否包括"grapes"

代码语言:javascript
复制
const fruits = [{
    "id": "1",
    "title": "Banana",
    "description": "1 Minute"
  },
  {
    "id": "2",
    "title": "Apple",
    "description": "2 - 3 Days"
  },
  {
    "id": "3",
    "title": "Manggo",
    "description": "10 - 20 Days"
  },
  {
    "id": "4",
    "title": "Orange",
    "description": "10 - 20 Days"
  },
  {
    "id": "5",
    "title": "Grape blue",
    "description": "10 - 20 Days"
  },
  {
    "id": "6",
    "title": "Grape red",
    "description": "10 - 20 Days"
  }
];

const filteredFruits = fruits.filter(fruit => {
  if (!fruit.title.toLowerCase().includes("grape")) {
    if (fruit.description === "10 - 20 Days") {
      return true;
    }
  }

  return false;
});

console.dir(filteredFruits)

票数 1
EN

Stack Overflow用户

发布于 2021-05-27 18:32:51

你应该像这样使用过滤器

代码语言:javascript
复制
const fruits =       [{
                        "id": "1",
                        "title": "Banana",
                        "description": "1 Minute"
                    },
                    {
                        "id": "2",
                        "title": "Apple",
                        "description": "2 - 3 Days"
                    },
                    {
                        "id": "3",
                        "title": "Manggo",
                        "description": "10 - 20 Days"
                    },
                    {
                        "id": "4",
                        "title": "Orange",
                        "description": "10 - 20 Days"
                    },
                    {
                        "id": "5",
                        "title": "Grape blue",
                        "description": "10 - 20 Days"
                    },
                    {
                        "id": "6",
                        "title": "Grape red",
                        "description": "10 - 20 Days"
                    }]

const res = fruits.filter(val=> !val.title.includes('Grape') && val.description.includes('10 - 20 Days'))

console.log(res)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67590053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档