如何摆脱对象#<对象>没有方法'推'错误
how to get rid of Object #<Object> has no method 'push' error?
嗨,我正试图将数据推送到已经定义了密钥的JSON对象上,但我仍然得到未捕获的类型在我有警报("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绑定不起作用
- 如何在ajax中调用javascript对象的方法
- 解析带有嵌入式数组的JSON对象,方法
- 确定var是否是javascript中的elementFinder对象的方法是什么
- Javascript:对回调创建的对象执行方法
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 有没有办法在应用程序脚本中使用JavaScript为对象创建方法字典
- Rally SDK 2 标签选择器是否有必填字段?对象没有方法'getContextPath'
- 按键名调用 JSON 对象的方法有什么区别
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()
- javascript构建对象.有什么区别和最好的方法
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 这两种定义类/对象的方法有什么区别?
- 是否有可能发送我的对象与方法(函数)从服务器到客户端
- 有没有一种方法可以在不修改Object.prototype的情况下给所有对象一个方法?
- 这两种获取画布对象的方法有什么区别?
- 解析JSON字符串后是否有方法获得对象属性
- 检查对象是否有方法,而不实例化它
- 如果访问amazon s3对象,是否有方法调用lambda函数?
- 在Python中是否有向对象添加方法的惯用方法?