gpt4 book ai didi

javascript - JS find()不适用于对象数组

转载 作者:行者123 更新时间:2023-11-30 19:12:45 25 4
gpt4 key购买 nike

我有一个数组 clients,我想在其上运行 array.find()。这个数组包含对象,通常看起来像这样:

[ { customId: 'user1', clientId: 'TPGMNrnGtpRYtxxIAAAC' },
{ customId: 'user2', clientId: 'G80kFbp9ggAcLiDjAAAE' } ]

这是我遇到的问题。我正在尝试使用 find() 来查看数组中的任何对象(或对象的一部分)是否与特定变量 recipient 匹配,该变量通常包含类似的值用户 1。我用来执行此操作的代码是:

function checkID(recipient) {
return recipient;
}
var found = clients.find(checkID);

这总是返回数组中的第一个对象。我是否使用了错误的 find(),或者是否有更好的方法来执行此操作?

最佳答案

find 采用谓词(如果项目匹配则返回 true,如果项目不匹配则返回 false 的函数)。

const arr = [ { customId: 'user1', clientId: 'TPGMNrnGtpRYtxxIAAAC' },
{ customId: 'user2', clientId: 'G80kFbp9ggAcLiDjAAAE' } ]

const result = arr.find(item => item.customId === 'user1')
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// This should evaluate to true for a match and to false for non-match

您始终获得数组第一项的原因是因为您的 checkId 函数正在返回计算结果为 true 的内容。因此,第一个项目被评估并产生一个 truth 结果,因此它被选为第一个匹配项。


如果不熟悉 lambda 语法 () => {},那么该行类似于:

const result = arr.find(function (item) { return item.customId === 'user1' })

关于javascript - JS find()不适用于对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58311696/

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