循环引用,就是把自己赋值给了自己的一个属性
var a={};
a.b=a;
这种就是循环引用,还有很多其他情况,
我的情况是处理订单数据是遇到的,因为对方返回的数据,是一个产品生成了一条数据,如果一个订单有多高商品的话,就需要合并订单处理,(吐槽一下,这种处理方式很扯蛋),
直接上代码吧,其实原理也简答,就是一般想不到,公司的大佬解决的,很短的代码
var order_list =[];//定义一个新数组
var list = res.data.data.orderList;//获取到的订单数据
var _list = {};//定义一个新对象
for (var i = 0; i < list.length; i++) {
var item=list[i];
if(_list[item.GoodsOrderId] !=null){
_list[item.GoodsOrderId].goods.push(item);
}else{
_list[item.GoodsOrderId] = { "OrderID": item.GoodsOrderId, "Status": item.Status, "goods": [item]};
}
}
for(var item in _list){
order_list.push(_list[item]);
}
有用就给个赞吧,亲们