后端返回数组类型在前端ajax接收到的是Object类型,导致.length获取长度失败
问题:后端返回数组类型在前端ajax接收到的是Object类型,导致.length获取长度失败。奇怪的是我本地返回类型是Array没任何问题,test环境就成Object了本地环境:test环境:解决办法:将Object转成Arraydata.favorites_list = objOfValueToArr(data.favorites_list);function objOfValueToArr
·
问题:后端返回数组类型在前端ajax接收到的是Object类型,导致.length获取长度失败。奇怪的是我本地返回类型是Array没任何问题,test环境就成Object了
本地环境:

test环境:

解决办法:将Object转成Array
data.favorites_list = objOfValueToArr(data.favorites_list);
function objOfValueToArr(object) {
if(!isArrayFn(object)){
var arr = [];
var i = 0;
for (var item in object) {
arr[i] = object[item];
i++;
}
return arr;
}else{
return object;
}
}
function isArrayFn(value){
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}else{
return Object.prototype.toString.call(value) === "[object Array]";
}
}
总结:遇到问题较长时间无解决思路时,要么清空大脑换个思路,要么就及时请教。如解决本问题时刚开时就一味觉得在后台数据哪的格式弄错了,一头扎进后端代码无法自拔。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)