javascript - 如何从 Javascript 中的过滤器返回特定值

标签 javascript object filter

我有一个对象数组

animals[
 {id:1, name:"cat"}, 
 {id:2, name:"dog"}, 
 {id:3, name:"fish"}
]

我还有另一个

selected = [1,2]

我想要以所选字符串的形式返回:

"cat, dog"

我目前知道如何过滤

   const selectedAnimals = selected.filter(function(e) {
      return animals.find(o => o.id == e);
    })

但这会返回 id 列表。我如何以字符串格式返回名称列表?我需要使用减少还是可以使用过滤器选项来做到这一点?

最佳答案

您必须使用filter()在您的 animals 数组上。可以使用includes()检查数组是否包含给定值。

var selectedAnimals = animals.filter(animal => selected.includes(animal.id));

实例:

var animals = [
 {id:1, name:"cat"}, 
 {id:2, name:"dog"}, 
 {id:3, name:"fish"}
];

var selected = [1,2];

var selectedAnimals = animals.filter(animal => selected.includes(animal.id));

console.log(selectedAnimals);

关于javascript - 如何从 Javascript 中的过滤器返回特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861821/

相关文章:

Java - NotSerializedException(保存对象)

python - 简单地从 python 列表中删除元素

json - 如何在Elasticsearch中过滤内部对象?

javascript - 日期格式 - momentjs - 使用语言环境分别提取日期和时间

javascript - Joi 验证模式 - 两个字段不能具有相同的值

java - 在 java 中使用对象,在创建新对象后无法从 main 访问他

javascript - Javascript 中的 OOP 原则

filter - O数据 : Operands of logical operator 'AND' are not valid

javascript - 制作带有日期时间的闹钟

javascript - Twitter Bootstrap Tabs 在点击时没有改变