最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Filtering an Object in Array with javascript in react native - Stack Overflow

programmeradmin3浏览0评论

I'm stuck on something I think it is just stupid but after trying some stuffs, I can't find the solution. Any advice ?

I have an array with objects in this format :

   [
    Object {
      "name": "name",
     "description": "100 jours ferme",
     "image: "path_image",
     "culture": Array [
      Object {
        "name": "name",
        "value": "309",
      }
    ]}
    ...
    ]

With a function in my react native project I get a selected value, for instance : 309

So what i'm trying to do is to create a New Array with only the items containing this value in my Object inside culture and modifying the state of my array (with setState)

I know I can map all the culture array with .map() but then I'm stuck. I just want to say "I want a new array with these elements" ...

Then, I know if I had something like that :

"culture": 309

I could have done that : myArray.filter(i => i.culture == selectedValue)

Any help on how I can do that with .filter(), .map() ?

Thank you

I'm stuck on something I think it is just stupid but after trying some stuffs, I can't find the solution. Any advice ?

I have an array with objects in this format :

   [
    Object {
      "name": "name",
     "description": "100 jours ferme",
     "image: "path_image",
     "culture": Array [
      Object {
        "name": "name",
        "value": "309",
      }
    ]}
    ...
    ]

With a function in my react native project I get a selected value, for instance : 309

So what i'm trying to do is to create a New Array with only the items containing this value in my Object inside culture and modifying the state of my array (with setState)

I know I can map all the culture array with .map() but then I'm stuck. I just want to say "I want a new array with these elements" ...

Then, I know if I had something like that :

"culture": 309

I could have done that : myArray.filter(i => i.culture == selectedValue)

Any help on how I can do that with .filter(), .map() ?

Thank you

Share Improve this question asked Sep 29, 2018 at 17:05 Clément CREUSATClément CREUSAT 3213 gold badges6 silver badges13 bronze badges 1
  • Possible duplicate of Javascript: How to filter object array based on attributes? – Heretic Monkey Commented Sep 29, 2018 at 17:38
Add a ment  | 

2 Answers 2

Reset to default 4

You can Array.prototype.filter over the array, then for each culture run Array.prototype.find with the predicate of

o => o.value === selectedValue

Here is a running example:

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)
.as-console-wrapper { max-height: 100% !important; }

To filter array with specific key,

var filterArray = detailArray.filter(
      data => data.service === serviceIdentifier,
    );
发布评论

评论列表(0)

  1. 暂无评论