首页 > Web开发 > 详细

js动态添加未知新属性

时间:2018-02-06 17:45:15      阅读:213      评论:0      收藏:0      [点我收藏+]

1 前言

由于项目需要,需要实现获取服务器不同网卡扫局域网中的某种类型设备,然而不同服务器的网卡个数是不相同的,从而需要动态增加未知属性来统计不同网卡扫到的设备个数。

2 代码

function nicClassify(json){
			
			var ret = {};
			var jsonArr = json.split(",");
			var setArr = uniqueArr(jsonArr);
			var map={};
			
			if(json == ""){
				return ret;
			}
			
			
			//init
			ret.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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!