Javascript 为什么Lodash u0.find方法返回未定义?

Javascript 为什么Lodash u0.find方法返回未定义?,javascript,node.js,lodash,Javascript,Node.js,Lodash,我有一个集合,使用Lodash\方法find返回标题与“Development”匹配的对象 所以我有下面的代码,我希望它能返回我想要的: // Define rooms var rooms = [ { title: 'Just For Fun', created: '2016-10-23T16:57:03.288Z', id: 2 }, { title: 'Development', created: '2016-10-23T16:57:03.294Z', id: 6 } ]; // L

我有一个集合,使用Lodash
\方法find
返回标题与“Development”匹配的对象

所以我有下面的代码,我希望它能返回我想要的:

// Define rooms
var rooms = [
  { title: 'Just For Fun', created: '2016-10-23T16:57:03.288Z', id: 2 },
  { title: 'Development', created: '2016-10-23T16:57:03.294Z', id: 6 }
];
// Load lodash module
var _ = require('lodash');
// Expected object for development?
console.log(_.find(rooms, {'id': 6}));
然而,我在控制台中得到的只是
未定义的
。示例如下:

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];
// The `_.matches` iteratee shorthand.
_.find(users, { 'age': 1, 'active': true });
// => object for 'pebbles'
所以他们得到了
pebbles
,但我得到了
未定义的
?有人能指出我哪里出了问题吗?提前谢谢


我正在使用节点。

它正在工作。console.log可能会让您感到困惑:

var rooms = [
  { title: 'Just For Fun', created: '2016-10-23T16:57:03.288Z', id: 2 },
  { title: 'Development', created: '2016-10-23T16:57:03.294Z', id: 6 }
];
var room = _.find(rooms, {'id': 6});
console.log(room); // Object {title: "Development", created: "2016-10-23T16:57:03.294Z", id: 6}

(1) 你能在一个代码块中显示你的代码,这样顺序就清楚了吗?在执行
查找
之前,您是否定义了
房间
?(2) 您是如何安装lodash的?(3) 您运行的是哪个版本的节点?@trincot我明白您的意思,但我确实在console.log()之前定义了文件室。更新了我的问题。您当然知道,
console.log
本身返回未定义,因此将输出到控制台。上面的行应该是它找到的元素。通常屏幕截图是个坏主意,但在这种情况下,它可能会有用。@torazaburo证据就在布丁里,当我意识到我在测试中将id封装为字符串时,我准备做一个屏幕截图,在这里的示例中,它是一个整数。这就是问题所在,谢谢你的帮助/@CraigvanTonder,为什么你对这个答案说“它有效”,而对另一个等价的答案说“未定义”?这与您尝试使用的代码有何不同?@trincot我不是专家,但简单地说,如果我控制台记录Lodash方法,结果是未定义的,但是如果我定义一个变量作为Loadash方法的结果,那么控制台记录变量,然后它按照我的预期输出对象。也许你能给我解释一下之后是否更改了
房间
变量?这可以解释,因为
console.log
并不总是同步计算表达式值。@trincot简单地说,我是个白痴。。。在我的测试中,我将id封装为一个字符串,但它实际上应该是一个整数,正如我的问题中所述。。。。谢谢你提供了这个问题的额外见解,我很感激!很高兴你找到了。在这种情况下,问题可以关闭(或删除,您可以自己完成)。