gpt4 book ai didi

javascript - 迭代一个数组并只返回匹配的值?

转载 作者:行者123 更新时间:2023-12-03 12:28:20 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Find object by id in an array of JavaScript objects

(35 个回答)


6年前关闭。




我正在使用 JSON,并且想遍历一个数组并返回我正在寻找的值。例如,如果我有一个对象数组,并且每个对象都有特定书籍的信息,我如何遍历该数组中的每个对象并只返回匹配的对象?

我试过使用 map ,像这样(但不能按我需要的方式工作):

// books is from my imported JSON object

const favoriteBook = books.map((book) => {
if (book.title == this.props.params.id) {
return book;
}
});

console.log(favoriteBook)

但是,当我 console.log(favoriteBook) 时,我看到一个数组,其中返回了一个匹配的对象,加上所有不匹配的对象的“未定义”。我怎样才能让它在找到匹配项后立即停止并返回那个匹配项?如果可能(?)或类似的方式,想知道如何使用“过滤器”来做到这一点。

谢谢。

最佳答案

我想这取决于您是要匹配多本书还是仅匹配一本书。

匹配多本书

您可以通过 filter() 来完成此操作。函数,它将处理多本书:

const favoriteBooks = books.filter((b) => { return b.title == this.props.params.id;});

匹配单书

否则,您可能需要 find() 函数返回一个:
const favoriteBook = books.find((b) => { return b.title == this.props.params.id;});

注:非常注意您如何使用 this关键字,因为它可以在您的一个函数调用的上下文中发生巨大变化。您可能会考虑在调用函数之前存储它或以不同的方式引用它以避免意外结果。

关于javascript - 迭代一个数组并只返回匹配的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com