大家好我合并两个对象有问题 任何想法我该怎么做?
controller.hears('offres','message_received, facebook_postback',function(bot,message){
connection.connect("mongodb://localhost/bot",function(err,db){
var z ="";
var data = db.collection('offres').find().toArray().then(function(data){
for (var i =0 ; i<10; i++){
var _under = require("underscore");
var titre = data[i]['titre'];
var ref = data[i]['ref'].toString();
var description = data[i]['description'];
b = setpayload(titre,description, ref,'https://cdn.pixabay.com/photo/2017/01/13/17/29/hiring-1977803_960_720.jpg');
z= _under.extend(z, b);
}
bot.reply(message,{
attachment:{
'type': 'template',
'payload': {
'template_type': 'generic',
'elements':[z ]
}}
})
})
});
function setpayload(titre,sub, ref, image)
{
var m = {
'title': titre,
'image_url': image,
'subtitle': sub,
'buttons': [
{
'type': 'postback',
'title': 'postuler',
'payload': ref
},
{
'type': 'postback',
'title': 'plus de détail',
'payload': ref
}
]
}
return m ;
}
notant que pour unslideçamarchetrébien controller.hears('offres','message_received,facebook_postback',function(bot,message){
connection.connect("mongodb://localhost/bot",function(err,db){
var data = db.collection('offres').find().toArray().then(function(data){
var _under = require("underscore");
var titre = data[0]['titre'];
var ref = data[0]['ref'].toString();
var description = data[0]['description'];
b = setpayload(titre,description, ref,'https://cdn.pixabay.com/photo/2017/01/13/17/29/hiring-1977803_960_720.jpg');
bot.reply(message,{
attachment:{
'type': 'template',
'payload': {
'template_type': 'generic',
'elements':[b]
}}
})
})
});
function setpayload(titre,sub, ref, image)
{
var m = {
'title': titre,
'image_url': image,
'subtitle': sub,
'buttons': [
{
'type': 'postback',
'title': 'postuler',
'payload': ref
},
{
'type': 'postback',
'title': 'plus de détail',
'payload': ref
}
]
}
return m ;
}
答案 0 :(得分:0)
有一点点错误 要求('下划线')应该不存在..无论如何都与问题无关
答案 1 :(得分:0)
在尝试合并它们之前,您的设置z
等于字符串。
它需要是一个对象。
var z = {};
另外,为什么不用它来合并你的对象:
z = Object.assign(z, b);
示例:
$(function(){
var z = {"foo": "bar"};
var b = {"newData": "blah"};
z = Object.assign(z, b);
console.log(z);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>