解析云代码中Underscore.js的方法

时间:2014-09-10 06:24:13

标签: javascript parse-platform underscore.js

我试图通过query.find()方法从返回给我的数组中检索随机的200个对象。首先,我试图实现所有随机数生成。刚才我介绍了underscore.js方法“_.sample”。 但是出了点问题。我对underscore.js知之甚少。所以,如果有人能提供帮助,那就太好了。 当我尝试sun _.sample方法时,它会给我错误:

TypeError: Object function (e){if(e instanceof T)return e;if(!(this instanceof T))return new T(e);this._wrapped=e} has no method 'sample'

有人请解释这个错误究竟是什么。我尝试过搜索,但没有得到解释性内容。提前谢谢。

以下是代码:

var queryPhrases = new Parse.Query("Phrases");
queryPhrases.select("phraseId");
queryPhrases.find().then(function(phrases){
        var arrayOfUnused = _.sample(phrases,request.params.count);
        user.add("usedPhrases",arrayOfUnused);
        user.save();
        response.success(arrayOfUnused) ;
 });

2 个答案:

答案 0 :(得分:3)

Parse Cloud Code包含一个过时的Underscore版本,但令人沮丧的是,我无法找到任何说明哪个版本的内容。虽然Underscore自v1.6.0(2015年末)起不再附带Parse Javascript SDK,但之前它只使用了UnderscoreJS v1.4.4(2013年初),所以我希望Cloud Code能够使用来自当时的东西。

将最新的Underscore源添加到您的Cloud Code始终是一个选项,然后require就像您自己的任何其他文件一样。

或者,我使用以下内容显示所包含的Underscore Cloud Code模块中可用的功能列表。

var _ = require('underscore');
var availableFunctions = _.functions(_);
console.log('Available Underscore Functions: ' + JSON.stringify(availableFunctions));

答案 1 :(得分:1)

非常感谢你的回复。我找不到在我的代码中运行_.sample的原因或解决方案。所以我用另一种方式实现了它。这就是我所做的。

var arrayOfUnused = _.first(_.shuffle(phrases),request.params.count);

这很有效。 : - )