首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用react native中的javascript过滤Array中的对象

使用react native中的javascript过滤Array中的对象
EN

Stack Overflow用户
提问于 2018-09-30 01:05:58
回答 2查看 8.2K关注 0票数 4

我被一些我认为很愚蠢的东西卡住了,但在尝试了一些东西之后,我找不到解决方案。有什么建议吗?

我有一个包含以下格式对象的数组:

代码语言:javascript
复制
   [
    Object {
      "name": "name",
     "description": "100 jours ferme",
     "image: "path_image",
     "culture": Array [
      Object {
        "name": "name",
        "value": "309",
      }
    ]}
    ...
    ]

通过我的react native项目中的一个函数,我得到了一个selected value,例如:309

因此,我要做的是创建一个New Array,其中只包含culture内对象中包含此值的项,并修改数组的状态(使用setState)

我知道我可以用.map()映射所有的culture数组,但是我被卡住了。我只想说“我想要一个包含这些元素的新数组”……

然后,我知道如果我有这样的东西:

代码语言:javascript
复制
"culture": 309

我本可以做到的:myArray.filter(i => i.culture == selectedValue)

有什么关于如何使用.filter(), .map()做到这一点的帮助吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-30 01:24:26

您可以在数组上运行Array.prototype.filter,然后对每个culture运行Array.prototype.find,其谓词为

代码语言:javascript
复制
o => o.value === selectedValue

下面是一个正在运行的示例:

代码语言:javascript
复制
const arr = [
  {
    name: "name",
    description: "100 jours ferme",
    image: "path_image",
    culture: [{
      name: "name",
      value: "309"
    }]
  },
  {
    name: "name",
    description: "100 jours ferme",
    image: "path_image",
    culture: [{
      name: "name",
      value: "308"
    }]
	}
];

const selectedValue = '309';
const newArr = arr.filter(obj => obj.culture.find(o => o.value === selectedValue));
console.log(newArr)
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; }

票数 4
EN

Stack Overflow用户

发布于 2019-09-11 21:34:49

要过滤具有特定键的数组,

代码语言:javascript
复制
var filterArray = detailArray.filter(
      data => data.service === serviceIdentifier,
    );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570634

复制
相关文章

相似问题

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