Javascript IIFE返回map函数,map不能使用var

Javascript IIFE返回map函数,map不能使用var,javascript,closures,pouchdb,iife,Javascript,Closures,Pouchdb,Iife,我想在映射操作中使用一个函数,它将局部变量与映射返回的文档进行比较。我直接尝试了,我把它当作一种生活来尝试,它总是抱怨map找不到名为boatNumber的变量: 如果我在==中用一个常量替换boatNumber,它就可以正常工作。那么如何在map函数中识别boatNumber呢 更新 接 ReferenceError: "boatNumber is not defined" anonymous file:///Users/ptomblin/Dropbox/KayakResults/js

我想在映射操作中使用一个函数,它将局部变量与映射返回的文档进行比较。我直接尝试了,我把它当作一种生活来尝试,它总是抱怨map找不到名为boatNumber的变量:

如果我在==中用一个常量替换boatNumber,它就可以正常工作。那么如何在map函数中识别boatNumber呢

更新

ReferenceError: "boatNumber is not defined"
    anonymous file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js line 7 > Function:5
    Zn file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
    n file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
    e file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
传递给查询的函数被字符串化并发送到数据库。然后在那里进行评估。因此,你不能从外部访问任何东西,它必须是纯的,所以换句话说,你只能访问通过的文档和是的,文档应该真正提到这一点

看起来,您想做的事情可以通过常规findquery轻松完成:


错误消息到底是什么?“boatNumber肯定在您所展示的代码中使用的任何地方都适用。@RobinZigmond更新了相关内容。我确实感觉我的地图被字符串化,发送到其他地方,并在那里进行评估。”。我想它必须是纯的,文档中说我需要为此安装另一个插件。我希望避免把事情复杂化。顺便说一句,发现这是一个PockDB问题做得很好,尽管我忘了标记它。好吧,我只是使用MongoDB到目前为止,查询很大程度上受到了这一点的启发,但在我看来,您必须加载另一个库来进行查询,这真的很奇怪。我的意思是,这就是DBs的全部内容。。。但是,在很多条目上运行一些JS在性能方面似乎是一个非常糟糕的主意,所以我真的会尝试使用一个真正的db查询,它必须是纯的,而不是接近任何东西。@bergi with pure我的意思是,除了环境提供的参数和内置内容之外,我什么也不访问。我不得不翻阅大量文档,什么也找不到。哦,安装PockDB find的说明是错误的:npm install PockDB find返回ENOTFOUND。
Error messages are:
The user's map/reduce function threw an uncaught error.
You can debug this error by doing:
myDatabase.on('error', function (err) { debugger; });
Please double-check your map/reduce function.
ReferenceError: "boatNumber is not defined"
    anonymous file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js line 7 > Function:5
    Zn file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
    n file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
    e file:///Users/ptomblin/Dropbox/KayakResults/js/pouchdb-7.1.1.min.js:7
    var boatNumber = $('#add_result_boat_number').val();
    ro.pdb.find({
     selector: {
       boatnumber: boatNumber,
     },
     fields: ["boatClass", "p1name", "p2name"]
    }).then(...)