我有具有以下结构的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" }
发布于 2021-05-18 16:18:08
通过使用Array.protoype.filter很容易做到这一点。在filter回调中,可以使用String.protoype.includes方法检查标题是否包括"grapes"。
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)
发布于 2021-05-27 18:32:51
你应该像这样使用过滤器
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)https://stackoverflow.com/questions/67590053
复制相似问题