我坚持认为自己只是愚蠢的东西,但是尝试了一些东西之后,我找不到解决方案。有什么建议吗?
我有一个数组,其中对象的格式如下:
[
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)
我知道我可以用culture
映射所有.map()
数组,但是我陷入了困境。
我只想说“我想要一个包含这些元素的新数组” ...
然后,我知道我是否有这样的东西:
"culture": 309
我可以这样做:myArray.filter(i => i.culture == selectedValue)
有关如何使用.filter(), .map()
做到这一点的任何帮助吗?
谢谢
答案 0 :(得分:3)
您可以Array.prototype.filter遍历数组,然后对于每个culture
使用谓词
o => o.value === selectedValue
这是一个正在运行的示例:
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; }
答案 1 :(得分:0)
要使用特定键过滤数组,
[checkbox checkbox-red value "Red,"]