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 に答える