1 前言
由于项目需要,需要实现获取服务器不同网卡扫局域网中的某种类型设备,然而不同服务器的网卡个数是不相同的,从而需要动态增加未知属性来统计不同网卡扫到的设备个数。
2 代码
function nicClassify(json){var ret = {};var jsonArr = json.split(",");var setArr = uniqueArr(jsonArr);var map={};if(json == ""){return ret;}//initret.wireless = 0;var k=0;for(var j = 0; j < setArr.length;j++){var data = setArr[j].toLowerCase();if(!(data.indexOf("wireless") > -1 || data.indexOf("wifi") > -1 || data.indexOf("wlan") > -1 || data.indexOf("wi-fi") > -1)){eval("ret.wire"+k+"=0");eval("map[‘"+r(data)+"‘]=‘wire"+k+"‘");k++;}}for(var i = 0; i < jsonArr.length; i++){var data = jsonArr[i].toLowerCase();if(data.indexOf("wireless") > -1 || data.indexOf("wifi") > -1 || data.indexOf("wlan") > -1 || data.indexOf("wi-fi") > -1){ret.wireless ++;}else {for(var kk = 0; kk < k; kk++){if(eval("map[‘"+r(data)+"‘]=‘wire"+kk+"‘")){eval("ret.wire"+kk+"++");}}}}return ret;}function r(s){return s.replaceAll(" ","_");}function uniqueArr(array){var n = [];for(var i = 0; i < array.length; i++){ if (n.indexOf(array[i]) == -1) n.push(array[i]); } return n; } ???????//Sample: jsonArrNICs ="wifi,wi-fi,a,a,b,b,b,wlan";var nicRetMap = nicClassify(jsonArrNICs);
3 说明
一般来说,map.attr1 = val1 等价于map["attr1"] = val1,但是当attr1是带有 ’ ‘,’-‘ 等符号,不能直接使用’.‘操作符来访问。
js动态添加未知新属性
原文地址:https://www.cnblogs.com/fanbi/p/8423152.html