有点烦

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;
        }
    }
};

但是烦的不是这个,做了这个也没有高兴起来。

想离职很久了,但是不知道怎么提。领导和同事都挺好的,但是不喜欢这个行业。或者说这个公司。

好烦啊

原文地址:https://www.cnblogs.com/lswit/p/5139784.html