JS处理函数将对象作为参数传递

做项目的时候遇到一个不是很常见的问题,就是js函数传递参数的时候,我们一般是传递一个数字或者是一个字符串,但是当你的需求满足不了的时候,就需要将对象或者数组作为一个参数传递过去,这个时候怎么做呢,今天简单的说有一下:

先说一下我出现这个问题的环境,我在处理订单信息的时候,接口给的参数是所有的数据,所以这个时候我需要的是将所有的数据遍历出来,数据结构大概是这样的:

 这个是典型的三层的json结构,所以遍历的难度是不大的,就是很容就遍历出错,我的需求当然不是说仅仅将这些数据遍历出来就可以了,我需要做的是将最里层的data拿到,作为对象传递过去,因为这是每一个订单的具体内容,也就是详情,所以需要明确的将data作为一个参数传递过去,废话不说了,看代码;

success: function(data) {
				var odata = data.model_list;
				for(var i = 0; i < odata.length; i++) {
					detalData = JSON.parse(odata[i].data);
					//console.info(typeof detalData);
					var str = '<a onclick="detal_info(' +                         
                    JSON.stringify(detalData).replace(/\"/g, "'") + ')">' +
                    '</a>'
					$('#order-detail').append(str);
}

这里简单的解释一下,首先拿到了成功的返回数据,这个时候我们看上面的数据结构,最外层的是model_list包括的,所以直接取出来,拿到以后呢将我们需要的data拿到,转为json格式的,这个时候我们下面需要用到里面数据的时候就比较容易拿到,下一步就是怎么将对象data作为一个参数传递过去,我们需要这样处理一下:

JSON.stringify(detalData).replace(/\"/g, "'")

将我们拿到的json对象转为string的字符串,然后用正则表达式将里面所有的''转为"",这样下面接收的时候才是可以的。、

这篇文章没有别的什么技术含量,只是编码过程中一个坑而已,毕竟我写的时候确实是查了资料,才明白,还是觉得应该记录一下,下次遇到了,还是希望可以直接拿来使用。

谢谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是悟能了

阅读就是对我最大的支持,感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值