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
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,
);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.