后端返回数组类型在前端ajax接收到的是Object类型,导致.length获取长度失败

问题:后端返回数组类型在前端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]";
   }
}

总结:遇到问题较长时间无解决思路时,要么清空大脑换个思路,要么就及时请教。如解决本问题时刚开时就一味觉得在后台数据哪的格式弄错了,一头扎进后端代码无法自拔。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值