如何摆脱对象#<对象>没有方法“推”错误?
嗨,我想推动数据到JSON对象,其中已经定义了键,但我仍然没有被捕获typeError在线,我有警报(“3”)和警报(“6”)
server.on('update_message_from_server', function(data){ if(data.message_to!=false){ alert("1"); if(data.message_from==<?php echo $session_user_id;?>){ alert("2"); if(message_store.hasOwnProperty(data.message_to_email)){ alert("3"); message_store[data.message_to_email].push((data)); str2 = '<div id ="recent_message_log_entry'+data.message_to_email+'"><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $(document.getElementById("recent_message_log_entry"+data.message_to_email)).replaceWith(str2); }else{ alert("4"); message_store[data.message_to_email]= new Array(); message_store[data.message_to_email]=data; string = '<div><div>'+data.message_to_email+'</div><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $("#new_updates").append(string); } }else{ alert("5"); if(message_store.hasOwnProperty(data.message_from_email)){ alert("6"); message_store[data.message_from_email].push((data)); str2 = '<div id ="recent_message_log_entry'+data.message_from_email+'"><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $(document.getElementById("recent_message_log_entry"+data.message_from_email)).replaceWith(str2); }else{ alert("7"); message_store[data.message_from_email]= new Array(); message_store[data.message_from_email]=data; string = '<div><div>'+data.message_from_email+'</div><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $("#new_updates").append(string); } } }else{ alert("8"); alert("Email Does not exist "+data.message_to_email); } alert(JSON.stringify(message_store)); });
我如何纠正这一点?
提前致谢
如果message_store[data.message_from_email]
,则首先将一个空数组分配给它,然后不是将数据推送到数组,而是用data
覆盖数组
该错误是在线
message_store[data.message_from_email]= new Array(); message_store[data.message_from_email]=data;
它应该是
message_store[data.message_from_email] = new Array(); message_store[data.message_from_email].push(data);
或缩短
message_store[data.message_from_email]= [data];
所以
server.on('update_message_from_server', function(data){ if(data.message_to!=false){ alert("1"); if(data.message_from==<?php echo $session_user_id;?>){ alert("2"); if(message_store.hasOwnProperty(data.message_to_email)){ alert("3"); message_store[data.message_to_email].push((data)); str2 = '<div id ="recent_message_log_entry'+data.message_to_email+'"><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $(document.getElementById("recent_message_log_entry"+data.message_to_email)).replaceWith(str2); }else{ alert("4"); message_store[data.message_from_email]=[data]; string = '<div><div>'+data.message_to_email+'</div><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $("#new_updates").append(string); } }else{ alert("5"); if(message_store.hasOwnProperty(data.message_from_email)){ alert("6"); message_store[data.message_from_email].push((data)); str2 = '<div id ="recent_message_log_entry'+data.message_from_email+'"><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $(document.getElementById("recent_message_log_entry"+data.message_from_email)).replaceWith(str2); }else{ alert("7"); message_store[data.message_from_email]=[data]; string = '<div><div>'+data.message_from_email+'</div><div>'+data.message+'</div><div>'+data.date_posted+'</div></div>'; $("#new_updates").append(string); } } }else{ alert("8"); alert("Email Does not exist "+data.message_to_email); } alert(JSON.stringify(message_store)); });
- JavaScript – 通过input字段将对象添加到数组的末尾
- 无法加载Java脚本文件和bower_components / angular / angular.js
- Javascript / jquery get()在移动浏览器上不起作用(调用node-red,node.js)
- shopping-cart.hbs页面没有被渲染
- 用Node.js和Express显示一个JSON数据集
- NodeJS jQuery“.find”方法不能parsing包含“&nbsp;”的元素
- 在node.js Web应用程序中引用自定义JavaScript文件
- nodeJS保存文件中input框的发送请求
- html网页上的节点js代码输出