この関数の作成者が、すでにmapの呼び出しの結果であるオブジェクトに対してreduceを呼び出す理由を理解しようとしています。これはバックボーンアプリのレンダリング関数です(デモはこちらhttp://fire-camp.heroku.com/)。変数「messages」は、ユーザーがメッセージングシステムに入力するメッセージのコレクションを表します。なぜ作者はマップを呼び出してから、マップの結果、つまり「データ」を減らすのでしょうか。reduceがデータ変数に新しいものを追加する方法がわかりません。さらに情報が必要な場合はお知らせください。
render: function() {
var data = messages.map(function(message) { return message.get('content') + 'n'});
var result = data.reduce(function(memo,str) { return memo + str }, '');
$("#chatHistory").text(result);
return this;
}
非常に短いアプリの完全なソースコードはここにありますが、必要になるとは思いません。https://github.com/ryandotsmith/fire-camp