2017-06-21 17 views
0

私は流星Javascriptの初心者です。メールの配列結果を送信しようとしています。そしてmeteor javascriptを使用してメールで配列結果を送信する方法

var Testname = test.find({}).fetch(); 
var a = []; 
    var b = []; 
    var c = []; 
    var allResult = []; 
    _.each(Testname, function(testname){ 
      var testResult = test.findOne({_id:testname._id}); 
      var st = testResult.st; 
      var end_date = testResult.et; 
      var pt = testResult.percentileCalculationTill; 

      var br = testAttempts.find({activity_id:testname._id,start_time:{$st, $pt}}).count(); 
      b.push(br); 

      var Afterresult = testAttempts.find({activity_id:testname._id,start_time:{$pt, $lt:end_date}}).count(); 
      a.push(Afterresult); 

      var k = testname.name; 
      c.push(k); 


     }); 
var email = { 
     to: 'xxx.com',   
     from: 'xxxx.com', 
     subject: "xxx", 
     cc: "xxx", 
     text: "Name: " + c + 
     "\n\nWith : " + b + 
     "\n\nAfter: " + a 
     }; 


Meteor.call("send_email", email.to, email.from, email.subject, email.cc, email.text); 

マイ結果、以下のように私のコードは

Name : abs, dfg 
With: 4,5 
After: 7,6 

として送信しかし、私は以下のように

Name : abs With: 4  After: 7 
Name : dfg With: 5 After: 6` 

`だから私はそれをどのように解決することができますしたいです。 すぐに更新してください。

答えて

0

現在、a、b、cの3つの配列があります。これらはすべて同じ長さです。配列をループし、対応する要素を1つずつ結合する必要があります。以下のコードは最適な解決策ではありません(たとえば、a.lengthをa、b、cの長さを決めるために使用しないでください)が、理解するのが最も簡単なアプローチであり、正しい方向に向けるべきです。

var textString = ''; 
for(var row = 0; row < a.length; row++){ 
    textString = textString + 'Name: ' + c[row] + ' With: ' + b[row] + ' After: ' + a[row] + '\n\n' 
} 

var email = { 
    to: 'xxx.com',   
    from: 'xxxx.com', 
    subject: "xxx", 
    cc: "xxx", 
    text: textString 
    }; 
+0

ちょっとエイダン、それは完璧に動作します。ありがとうございます – user8156395

+0

そして、他のものは名前のためのHTMLタグを使用することができます:...と:.....と後:.... ????? – user8156395

+0

htmlタグの意味を正確にはわかりませんが、forループの内側の部分を変更した場合は、必要な文字列を作成できます。はい、私はその文字列内のhtmlタグを使用するといいと思うが、電子メールでhtmlを使用しようとしたことがない –

関連する問題