如何显示多个满足条件的数组元素?
Posted
技术标签:
【中文标题】如何显示多个满足条件的数组元素?【英文标题】:How can i display more than one array elements that satisfy a condition? 【发布时间】:2019-06-12 00:09:24 【问题描述】:如何向控制台显示与条件匹配的多个数组值(例如:=== "McDonalds")?
我只设法显示了一项。但我不知道如何显示我的数组的所有值。
public products: product[] = [
id: 1, name: "McFlurry", price: 2, enseigne:"McDonalds" ,
id: 2, name: "Potatoes", price: 3, enseigne:"McDonalds" ,
id: 3, name: "BigMac", price: 4, enseigne:"KFC" ,
id: 4, name: "Nuggets", price: 3, enseigne:"KFC"
];
searchEnseigne()
let server = this.products.find(x => x.enseigne === "McDonalds");
console.log(server);
【问题讨论】:
你想如何显示它们?在控制台中一次一行?作为逗号分隔的列表?也许请告诉我们您的预期输出。 您要查看哪些产品是“麦当劳”? 我试图在控制台中显示它实际上就像一个数组列表 Shivaraj : 没错 @SteveDemeulemeester,请编辑您的问题,说明您想要所有数组元素的 enseigne 为“McDonalds”。目前,您只是要求所有数组项。 【参考方案1】: let server = this.products.filter(x => x.enseigne === "McDonalds");
console.log(server);
【讨论】:
如果你看这个问题,你有一个不正确的答案,我读了 cmets,我知道你是对的,但你必须让 OP 编辑问题并更正它并回答他。跨度> @Aragorn:谢谢。我不确定为什么当问题本身不清楚时人们会否决,他使用的是控制台,而我使用的是相同的。你能告诉我你想让我做什么吗? 你从哪里得到这个:if(product.enseigne === "McDonalds")
要求?任何只看问题的人都认为你不正确,因此投反对票。
抱歉不清楚,在我的例子中产品是一个接口,所以我猜我不能在 for 循环中使用它
@Shivaraj 我根据 cmets 编辑了问题,您的答案现在看起来不错,+1【参考方案2】:
使用filter
代替find
:
filter()
方法创建一个新数组,其中包含通过测试的所有元素。而find()
方法返回第一个元素
searchEnseigne()
let server = this.products.filter(x => x.enseigne === "McDonalds");
console.log(server);
【讨论】:
以上是关于如何显示多个满足条件的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章