gpt4 book ai didi

javascript - Underscore _.findWhere 在数组中存在时找不到元素

转载 作者:行者123 更新时间:2023-11-30 00:27:51 24 4
gpt4 key购买 nike

我正在尝试使用 Underscore.js 库的 findWhere 函数从 node.js 服务器上的数组中高效地查找对象,但我不明白为什么它总是返回 undefined。

我使用 Node 控制台测试了该函数,该对象明确包含一个具有指定键的对象,但在使用 findWhere 时仍然没有返回任何内容。

在这里,我确保我在 findWhere 中寻找的 'fixture' 键的值确实等于我希望返回的对象中的匹配值:

'55785f4e38bd12511018145d' == predictions[0].fixture;

true

当检查 findWhere 正在搜索的数组中包含哪些值时,我确认该值确实存在:

predictions

[ { fixture: '55785f4e38bd12511018145d' } ]

检查我希望返回的值:

predictions[0].fixture

'55785f4e38bd12511018145d'

运行返回未定义的 findWhere 查询:

var foundPrediction = underscore.findWhere(predictions, {fixture: '55785f4e38bd12511018145d'});

undefined

我能想到的唯一原因是,这可能与转换有关,或者可能与在函数内返回 false 的“===”有关,但有什么方法可以让 findWhere 返回所需的对象,还是我必须使用 for 循环进行手动搜索?

提前致谢!

最佳答案

您的代码没有任何问题。看起来您正在控制台中运行,这就是为什么在按下 enter 后,控制台显示未定义。您可能认为 foundPrediction 值未定义。您需要控制 foundPrediction 变量以获得所需的结果。

此外,转换也没有错,因为它返回 true。

var predictions = [{
fixture:'55785f4e38bd12511018145d'
}]
console.log('55785f4e38bd12511018145d' === predictions[0].fixture);
var foundPrediction = _.findWhere(predictions, {fixture: '55785f4e38bd12511018145d'});
console.log(foundPrediction);

我已经在 jsFiddle 中添加了代码.希望对你有帮助

关于javascript - Underscore _.findWhere 在数组中存在时找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30764176/

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