0

这行得通

Template.kanjifinder.kanjicharacters = function () {
    console.log("kanjlist");
    return kanji.find({cardid: {$in:[1,2]}}, {sort: {cardid: 1}});  
};

但是有没有办法[1,2]用 javascript 数组替换这个硬编码的数组?

var str = "123456"
var cardids = str.split("");

if (Meteor.isClient) {
    Template.kanjifinder.kanjicharacters = function () {
        console.log("kanjlist");
        return kanji.find({cardid: {$in: **cardids** }}, {sort: {cardid: 1}});  
    } 
};
4

1 回答 1

3

您只需要在字符串中使用分隔符,您也可以在代码中这样做,但问题是 2 位数字:

var str = "1,2,3,4,5,6" //<<--- use a seperator here
var cardids = str.split(","); //<<--

//remove this line if you intend to use strings in your db instead of integers
cardids = _.map(function(card) { return parseInt(card);});

if (Meteor.isClient) {
   Template.kanjifinder.kanjicharacters = function () {
     console.log("kanjlist");
     return kanji.find({cardid: {$in:cardids}}, {sort: {cardid: 1}});  
   };
}

我正在使用下划线将字符串转换为整数,如果您还没有将它添加到您的流星包中meteor add underscore

于 2013-03-12T17:02:19.817 回答