2016年1月18日
有点烦
var client = {};client.sbrdjsjk = { '55565709052913':{ 'measurecode':'5' }, '55565713049148':{ 'measurecode':'6' }}var a = '123213', b = '7';client.sbrdjsjk[a] = {};client.sbrdjsjk[a].measurecode = b;var resultmsg = '6:6,7:7,5:5,';resultmsg = resultmsg.split(',');console.log(resultmsg);var dataObj = {};var dataKey = '', dataVal = '';for(var i = 0; i < resultmsg.length - 1; i++) { dataKey = resultmsg[i].split(':')[0]; dataVal = resultmsg[i].split(':')[1]; dataObj[dataKey] = dataVal; for(k in client.sbrdjsjk) { if (client.sbrdjsjk[k].measurecode == dataKey) { client.sbrdjsjk[k].zysl = dataVal; } }};console.log(dataObj);console.log(client);resultmsg = '';for(k in client.sbrdjsjk) { // console.log(k); resultmsg = resultmsg + k + ':' + client.sbrdjsjk[k].zysl + ',';};console.log(resultmsg);
这是做的一个通过改变对象结构,将三层遍历改进成了两层遍历的例子。
本来可以是这样:
var client = {};client.sbrdjsjk = { '55565709052913':'5', '55565713049148':'6'}var dataObj = { '5': '5.00', '6': '6.00', '7': '7.00' };for(k in client.sbrdjsjk) { for(v in dataObj) { if(client.sbrdjsjk[k] == v) { client.sbrdjsjk[k] = dataObj[v]; } }}console.log(client);
再加一层循环,来获取对应的表号。
又回头一看,发现不用搞个复杂的对象,按照原来的方法处理还是可以的,只不过中间的测量点号数据会消失掉,但是代码会清晰很多。于是立即重构了。
for(var i = 0; i < resultmsg.length - 1; i++) { dataKey = resultmsg[i].split(':')[0]; dataVal = resultmsg[i].split(':')[1]; for(k in client.sbrdjsjk) { if (client.sbrdjsjk[k] == dataKey) { client.sbrdjsjk[k] = dataVal; } }};
但是烦的不是这个,做了这个也没有高兴起来。
想离职很久了,但是不知道怎么提。领导和同事都挺好的,但是不喜欢这个行业。或者说这个公司。
好烦啊