如何显示多个满足条件的数组元素?

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);

【讨论】:

以上是关于如何显示多个满足条件的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询满足两个条件的重复记录只显示2条记录的方法

excel 满足一个条件 显示对应行倒数第二行?

CSV文件操作,PHP如何对满足条件的二维数组进行求和

如何显示多个满足特定条件的单元格的内容?

some()方法:检测数组中的元素是否满足指定条件

JavaScript - 获取满足条件的数组元素