jQuery .grep() 和 .filter() 不起作用



我有这个代码:

var event = $("‪#‎calendar‬").fullCalendar( 'clientEvents');
console.log(event);
event = $.grep(event, function(n) {
return n.id == "168" || n._id == "168";
});
console.log(event);

第一个控制台.log记录一个包含 12 个对象的数组。每个对象都有 .id 和 ._id 索引,我可以看到 id 168 确实存在。不幸的是,第二个控制台.log()记录了一个空数组...我做错了什么?

我也尝试了 .filter()

event = event.filter(function(n){
     return n.id === "168";
});

但我仍然得到一个空数组..

编辑:在这里你可以看到第一个控制台的图像.log()http://i61.tinypic.com/fmifiu.png如您所见,"id"索引是一个字符串。我也尝试了 === 和 ==(这应该适用于整数和字符串,因为它不比较类型)

编辑2:如果我将控制台.log(n)放在.grep过滤功能中,则控制台中不会记录任何内容。为什么??

我用一个肮脏的技巧让它工作(我仍然不知道为什么它不能以正常方式工作)。这就是代码:

setTimeout(function() {
                var event = events.filter(function(n){
                    return n.id == "168";
                });
                console.log(event);
            }, 100);

它以这种方式工作,但是,为什么呢?

最新更新